sql >> Databasteknik >  >> RDS >> Sqlserver

Frågar XML-datatyper som har xmlns-nodattribut

Om ditt XML-dokument har XML-namnrymder, måste du ta hänsyn till dem i dina frågor!

Så om din XML ser ut som ditt exempel behöver du:

-- define the default XML namespace to use
;WITH XMLNAMESPACES(DEFAULT 'bar')
SELECT   
    x.u.value('Name[1]', 'varchar(100)') as Name
from 
    @XMLDOC.nodes('/Feed/Product') x(u)

Eller om du föredrar att ha explicit kontroll över vilket XML-namnområde som ska användas (t.ex. om du har flera), använd XML-namnutrymmesprefix:

-- define the XML namespace 
;WITH XMLNAMESPACES('bar' as b)
SELECT   
    x.u.value('b:Name[1]', 'varchar(100)') as Name
from 
    @XMLDOC.nodes('/b:Feed/b:Product') x(u)


  1. hur man visar kolumnvärdet endast en gång om det upprepas och är tomt tills ett annat värde kommer i sql

  2. Hur man omformulerar en sql-fråga

  3. ORA-00942:tabell eller vy finns inte för blandade falltabeller och kolumner

  4. hur kan jag få en mängd nyligen infogade post-ID?