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)