我已将XML存储在SQL Server数据库的XML列中
<FRUITS>
<FRUIT> APPLE1234 </FRUIT>
<FRUIT> APPLE3456 </FRUIT>
<FRUIT> ORANGE123 </FRUIT>
</FRUITS>
我有一个选择查询:
SELECT
FRUITS.Value('(FRUITS/FRUIT)','nvarchar(max)') as FRUIT
FROM
BASKET
预期结果:
APPLE_FRUIT1
APPLE_FRUIT2
ORANGE_FRUIT1
如何替换select查询中的值?
答案 0 :(得分:0)
你应该尝试这样的事情:
SELECT
xc.value('.', 'varchar(50)')
FROM
dbo.BASKET
CROSS APPLY
XmlContent.nodes('/FRUITS/FRUIT') AS XT(XC)
这应该会给你预期的输出。
它的工作原理是创建一个&#34; XML片段列表&#34;对于每个<FRUIT>
元素,然后在SELECT
语句中提取该XML元素的内容。