我在表格中输入了一个xml'测试'如下
Id Input
------------------------------------------------------
1 <DeviceList xmlns="www.domain.com/devicelist">
<Device xmlns="" Name="Device1">1</Device>
<Device xmlns="" Name="Device2">2</Device>
</DeviceList>
2 <DeviceList xmlns="www.domain.com/devicelist">
<Device xmlns="" Name="Device3">3</Device>
<Device xmlns="" Name="Device4">4</Device>
</DeviceList>
3 <DeviceList>
<Device>4</Device>
<Device>5</Device>
</DeviceList>
我的预期结果如下,
Id DeviceIds
--------------
1 1,2
2 3,4
3 4,5
我的查询,
SELECT Id,
STUFF((SELECT
', ' + CAST(Id.query('./text()') as VARCHAR(MAX)) FROM Input.nodes('/DeviceList/Device') AS Projectors(Id) FOR XML PATH('')), 1, 1, '') AS DeviceIds
FROM test;
但是,此查询返回结果,
Id DeviceIds
-------------
1 NULL
2 NULL
3 4,5
任何人都可以帮助/建议我。
答案 0 :(得分:0)
根据以下问题判断query XML while ignoring namespace?
看起来像/ *:标记名可能有帮助。
如果这不起作用,这个问题还提供了围绕Ignore XML namespace in T-SQL
的另一项工作但是在命名空间之前需要一些知识。