gpt4 book ai didi

sql - 将 XML 数据分解为 SQL 行时保留元素顺序

转载 作者:行者123 更新时间:2023-12-02 11:16:48 25 4
gpt4 key购买 nike

在 SQL Server View 中将 XML 分解为行时如何返回元素序列?

示例输入:

<ol>
<li>Smith</li>
<li>Jones</li>
<li>Brown</li>
</ol>

期望的输出:

Sequence  Name
-------- -----------
1 Smith
2 Jones
3 Brown

现有 View :

CREATE VIEW OrderedList
AS
SELECT [Sequence] = CAST(NULL AS int) -- TODO: Get ordinal position
[Name] = b.b.value('.', 'nvarchar(max)')
FROM
(
SELECT a = CAST('<ol><li>Smith</li><li>Jones</li><li>Brown</li></ol>' AS xml)
) a
CROSS APPLY a.a.nodes('/ol/li') b (b)

最佳答案

您可以在 xml 节点上使用 row_number()

CREATE VIEW OrderedList
AS
SELECT [Sequence] = ROW_NUMBER() OVER(ORDER BY b.b),
[Name] = b.b.value('.', 'nvarchar(max)')
FROM
(
SELECT a = CAST('<ol><li>Smith</li><li>Jones</li><li>Brown</li></ol>' AS xml)
) a
CROSS APPLY a.a.nodes('/ol/li') b (b)

引用号:Uniquely Identifying XML Nodes with DENSE_RANK 作者:亚当·马卡尼克。

关于sql - 将 XML 数据分解为 SQL 行时保留元素顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10171823/

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