0
私は短い2レコードのXMLテキストを持っていますが、.valueを実行すると最初のレコードしか取得できません。どのように値のテーブルリストを取得するのですか?TSQLのxml.valueは1レコードしか返しません
declare @x as xml
set @x = '<?xml version="1.0" encoding="UTF-8"?>
<vehicle>
<vehicleid>54142</vehicleid>
<networkid>21301</networkid>
<description>Demo #54143</description>
</vehicle>
<vehicle>
<vehicleid>54143</vehicleid>
<networkid>213101</networkid>
<description>Demo #54143</description>
</vehicle> '
SELECT @x.query('/*')
SELECT @x.value('(/vehicle/vehicleid/text())[1]', 'varchar(50)') as vehicleid,
@x.value('(/vehicle/description/text())[1]', 'varchar(50)') as description
go
結果:
<vehicle><vehicleid>54142</vehicleid><networkid>21301</networkid><description>Demo #54143</description></vehicle> (WRAP to next line)
<vehicle><vehicleid>54143</vehicleid><networkid>213101</networkid><description>Demo #54143</description></vehicle>
(1 row(s) affected)
vehicleid description
54142 Demo #54143
(1 row(s) affected)
([SQL Server内の値()を使用してXML列から取得複数のレコード]の可能重複http://stackoverflow.com/questions/1393250/getting-multiple-records-from -xml-column-value-in-sql-server) – mellamokb