【发布时间】:2021-07-11 10:46:43
【问题描述】:
当我运行它只考虑第一个值的选择查询时,我有以下 XML,我在这里缺少什么?
<?xml version="1.0" encoding="utf-16"?>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<string>1</string>
<string>2</string>
<string>3</string>
.............
</ArrayOfString>
下面的查询只返回 1,我希望它返回所有值,如 1,2,3...
SELECT xmlu.v1.value('string[1]', 'BIGINT')
FROM
@xml.nodes('/ArrayOfString')
AS xmlU(v1)
【问题讨论】:
-
"只考虑第一个值" 因为那是你要求的:
'string[1]';[1]表示第一个节点。您是说要分隔结果吗? -
@Larnu,不,我只想要多行。实际上我想在 where 子句中使用结果。像这样
where id in (SELECT xmlu.v1.value('string[1]', 'BIGINT') FROM @xml.nodes('/ArrayOfString') AS xmlU(v1))
标签: sql-server xml