T-SQL,OpenXml正在将xml标记合并到单个记录中
我有这个sqlT-SQL,OpenXml正在将xml标记合并到单个记录中,sql,sql-server,xml,stored-procedures,openxml,Sql,Sql Server,Xml,Stored Procedures,Openxml,我有这个sql select Alias from OpenXml(@XML, '/Entity/Aliases', 2) with ( Alias varchar(255) '.' ) 从xml文件中提取数据 xml具有以下结构: <Entity> <EntityID>123</EntityID> <Aliases> <Alias>TEST 1</A
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>
123
测试1
测试2
测试3
返回select I getTEST 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)
将@Tmp声明为XML=
123
测试1
测试2
测试3
'
选择xmlData.A.value('.','VARCHAR(100')作为别名
从@Tmp.nodes('Entity/Alias/Alias')xmlData(A)