Here are a few examples to get you startedcreate table #XMLDemo(DemoID int,XMLCol xml)insert #XMLDemo select 1, '<Players><Player N="Player 1" S="p1" Ht="H" Hv="16" Sx="M" /> <Player N="Player 2" S="p2" Ht="H" Hv="0" Sx="M" /> <Player N="Player 3" S="p3" Ht="H" Hv="12" Sx="M" /> <Player N="Player n" S="pn" Ht="H" Hv="18" Sx="M" /> </Players>' union allselect 2, '<Players><Player N="Player 1" S="p1" Ht="H" Hv="16" Sx="M" /> <Player N="Player n" S="pn" Ht="H" Hv="18" Sx="M" /> </Players>' union allselect 3, '<Players><Player N="Player 1" S="p1" Ht="H" Hv="12" Sx="M" /> <Player N="Player 2" S="p2" Ht="H" Hv="0" Sx="M" /> </Players>'select * from #XMLDemoselect DemoID, XMLCol.value('(Players/Player[@N="Player 3"]/@Hv)[1]', 'int') as Hv from #XMLDemoselect DemoID, XMLCol.query('Players/Player[@N="Player 2"]') as Player from #XMLDemoselect DemoID from #XMLDemowhere XMLCol.exist('(Players/Player[@Hv="12"])') = 1godrop table #XMLDemo