You can wrap the query below into a function. You may get better performance if you directly used the query against your table(s) instead of wrapping them in functions.DECLARE @x XML = '<LTW> <Arrtibute Level="PR" name="ST" type="Include" Value="''CA'',''NY''" /><Arrtibute Level="LN" name="LA" type="LessThan" Value="500000" /> </LTW>';SELECT c.value('@Level','varchar(32)') [Level], c.value('@name','varchar(32)') [name], c.value('@type','varchar(32)') [type], c.value('@Value','varchar(32)') [Value]FROM @x.nodes('/LTW/Arrtibute') T(c);