Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
T-SQL,OpenXml正在将xml标记合并到单个记录中_Sql_Sql Server_Xml_Stored Procedures_Openxml - Fatal编程技术网

T-SQL,OpenXml正在将xml标记合并到单个记录中

T-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

我有这个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>

123
测试1
测试2
测试3

返回select I get
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)
将@Tmp声明为XML=
123
测试1
测试2
测试3
'
选择xmlData.A.value('.','VARCHAR(100')作为别名
从@Tmp.nodes('Entity/Alias/Alias')xmlData(A)