T-SQL,OpenXml 正在将 xml 标签合并到单个记录中
T-SQL, OpenXml is merging xml tags into single record
我有这个sql
select
Alias
from OpenXml(@XML, '/Entity/Aliases', 2)
with (
Alias varchar(255) '.'
)
正在从 xml 文件
中提取数据
xml 有这样的结构:
<Entity>
<EntityID>123</EntityID>
<Aliases>
<Alias>TEST 1</Alias>
</Aliases>
<Aliases>
<Alias>TEST 2</Alias>
</Aliases>
<Aliases>
<Alias>TEST 3</Alias>
</Aliases>
...
在 select 的 return 上,我得到 TEST 1TEST 2TEST 3
我该如何修改才能在不同的记录中得到每个别名?
试试下面的查询
DECLARE @Tmp AS XML ='
<Entity>
<EntityID>123</EntityID>
<Aliases>
<Alias>TEST 1</Alias>
</Aliases>
<Aliases>
<Alias>TEST 2</Alias>
</Aliases>
<Aliases>
<Alias>TEST 3</Alias>
</Aliases>
</Entity>'
SELECT xmlData.A.value('.', 'VARCHAR(100)') AS alias
FROM @Tmp.nodes('Entity/Aliases/Alias') xmlData(A)
我有这个sql
select
Alias
from OpenXml(@XML, '/Entity/Aliases', 2)
with (
Alias varchar(255) '.'
)
正在从 xml 文件
中提取数据xml 有这样的结构:
<Entity>
<EntityID>123</EntityID>
<Aliases>
<Alias>TEST 1</Alias>
</Aliases>
<Aliases>
<Alias>TEST 2</Alias>
</Aliases>
<Aliases>
<Alias>TEST 3</Alias>
</Aliases>
...
在 select 的 return 上,我得到 TEST 1TEST 2TEST 3
我该如何修改才能在不同的记录中得到每个别名?
试试下面的查询
DECLARE @Tmp AS XML ='
<Entity>
<EntityID>123</EntityID>
<Aliases>
<Alias>TEST 1</Alias>
</Aliases>
<Aliases>
<Alias>TEST 2</Alias>
</Aliases>
<Aliases>
<Alias>TEST 3</Alias>
</Aliases>
</Entity>'
SELECT xmlData.A.value('.', 'VARCHAR(100)') AS alias
FROM @Tmp.nodes('Entity/Aliases/Alias') xmlData(A)