sql >> Database >  >> RDS >> Sqlserver

Een xml opvragen in sql server 2008

Uw voorbeeld-xml heeft geen Pages knooppunt. Dit betekent dat wanneer de FROM clausule wordt berekend, wordt een kruisverbinding gevormd tussen een lijst met nul rijen en een lijst met één rij. Het resulterende product heeft geen rijen, dus er is niets SELECT ed, dus niets is INSERT red.

Als u daadwerkelijk één rij wilt invoegen in BookDetails voor elke booksdetail knooppunt in de inkomende xml, moet u iets als . doen

SELECT 
    ParamValues.PL.value('Pages[1]','int'),
    CAST(ParamValues.PLr.value('Description[1]','varchar(max)') AS text)
FROM 
    @xml.nodes('/booksdetail') as ParamValues(PL)

Dat wil zeggen, versnipper de inkomende XML in booksdetail knooppunten, en trek elk van de .value s u wilt van deze rijen.




  1. Geen database geselecteerde fout in PHP met MySQLi

  2. Som van Case Builder-expressie in QueryDSL

  3. MariaDB JSON_EXTRACT() uitgelegd

  4. Hoe krijg ik alleen numerieke kolomwaarden?