gpt4 book ai didi

sql - 从 SQL Server 2008 中查询 XML 列返回多行

转载 作者:数据小太阳 更新时间:2023-10-29 01:40:07 27 4
gpt4 key购买 nike

我有一个表 RDCAlerts,在名为 AliasesValueXML 类型的列中包含以下数据:

<aliases>
<alias>
<aliasType>AKA</aliasType>
<aliasName>Pramod Singh</aliasName>
</alias>
<alias>
<aliasType>AKA</aliasType>
<aliasName>Bijoy Bora</aliasName>
</alias>
</aliases>

我想创建一个返回两行的查询 - 每个别名一个,我尝试了以下查询:

SELECT
AliasesValue.query('data(/aliases/alias/aliasType)'),
AliasesValue.query('data(/aliases/alias/aliasName)'),
FROM [RdcAlerts]

但它只返回这样一行:

AKA AKA | Pramod Singh Bijoy Bora

最佳答案

查看联机丛书中的 .nodes() 方法:

DECLARE @r TABLE (AliasesValue XML)
INSERT INTO @r
SELECT '<aliases> <alias> <aliasType>AKA</aliasType> <aliasName>Pramod Singh</aliasName> </alias> <alias> <aliasType>AKA</aliasType> <aliasName>Bijoy Bora</aliasName> </alias> </aliases> '


SELECT c.query('data(aliasType)'), c.query('data(aliasName)')
FROM @r r CROSS APPLY AliasesValue.nodes('aliases/alias') x(c)

关于sql - 从 SQL Server 2008 中查询 XML 列返回多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9873192/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com