sql >> Database teknologi >  >> RDS >> Sqlserver

CROSS APPLY til navneområde, undernoder returnerer duplikerede poster

Prøv dette:

;WITH XMLNAMESPACES ('http://3ecompany.com/webservices/catalogitemxml' as CI)
SELECT 
    Identifier = CI.value('(CI:ProductIdentifiers[1]/CI:Identifier)[1]', 'varchar(9)'),
    CAS_Number = Ingred.value('(CI:Cas)[1]', 'varchar(20)'),
    Chemical_Name = Ingred.value('(CI:ChemicalName)[1]', 'varchar(100)')
FROM
    @XmlTable
CROSS APPLY
    XMLData.nodes('/ArrayOfCatalogItem/CatalogItem/CI:Msds') AS XT(CI)
CROSS APPLY
    CI.nodes('CI:Ingredients') AS XT18(Ingred)

Jeg får en liste over XML-fragmenter for hver node, og herfra henter jeg ProductIdentifiers info. Plus, fra denne node får jeg også en liste over under-XML-fragmenter for noder, og gribe detaljeret ind fra disse.

Mit output ser således ud:




  1. Opret forbindelse som bruger uden adgangskode indstillet på Postgresql 8.4 via JDBC

  2. Kan ikke få adgang til forudbefolket SQLite-database ved hjælp af PhoneGap/Cordova i Android

  3. FEJL:Opdater eller slet på tabelbrugere overtræder fremmednøglebegrænsning fk_rails_03de2dc08c på tabelkommentarer

  4. Opret et resuméresultat med én forespørgsel