sql >> Database >  >> RDS >> Sqlserver

Opvragen van XML-gegevenstypen die xmlns-knooppuntkenmerken hebben

Als uw XML-document XML-naamruimten heeft, moet u daar rekening mee houden in uw zoekopdrachten!

Dus als je XML eruitziet als je voorbeeld, dan heb je nodig:

-- 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)

Of als je liever expliciete controle hebt over welke XML-naamruimte je wilt gebruiken (bijvoorbeeld als je er meerdere hebt), gebruik dan XML-naamruimtevoorvoegsels:

-- 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. select * from table vs select colA, colB, etc. from table interessant gedrag in SQL Server 2005

  2. CodeIgniter Select-verklaring met Where-clausule

  3. TZ_OFFSET() Functie in Oracle

  4. Exclusief tafel (lees) slot op Oracle 10g?