Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Arbeiten mit dem XML-Datentyp von SQL Server

Ich bin mir nicht sicher, ob ich Ihre Frage hier ganz verstanden habe - oder suchen Sie danach? Sie würden alle /things/Fruit-Elemente als "Knoten" packen und sie mit Ihren "Basisdaten" in myTable verknüpfen - das Ergebnis wäre eine Zeile pro XML-Element in Ihrem XML-Datenfeld:

select 
   omID,
   T.Fruit.query('.')
from 
   dbo.myTable
cross apply
   omText.nodes('/things/Fruit') as T(Fruit)
where 
   T.Fruit.value('(title)[1]', 'varchar(50)') = 'X'
select 
   count(*)
from 
   dbo.myTable
cross apply
   omText.nodes('/things/Fruit') as T(Fruit)
where 
   T.Fruit.value('(imageId)[1]', 'int') = 55

Ist es das, wonach Sie suchen?

Markus