gpt4 book ai didi

xml - 获取xml元素在SQL Server 2012中的位置

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

如何使用 SQL Server 2012 获取行的行号?

这是xml

<Rows>
<Row>Coating</Row>
<Row>Drying</Row>
<Row>Waxing</Row>
</Rows>

我需要这样返回的数据

RowLabel  RowNumber
-------------------
Coating 1
Drying 2
Waxing 3

最佳答案

您可以使用一些有关 SQL Server 如何实现 XML 分解的内部知识,并像这样使用 row_number()

declare @XML xml = 
'<Rows>
<Row>Coating</Row>
<Row>Drying</Row>
<Row>Waxing</Row>
</Rows>'

select T.X.value('text()[1]', 'nvarchar(100)') as RowLabel,
row_number() over(order by T.X) as RowNumber
from @XML.nodes('/Rows/Row') as T(X)

引用:Uniquely Identifying XML Nodes with DENSE_RANK

或者您可以“谨慎行事”并使用数字表。

select T.X.value('text()[1]', 'nvarchar(100)') as RowLabel,
N.Number as RowNumber
from Numbers as N
cross apply @XML.nodes('/Rows/Row[sql:column("N.Number")]') as T(X)
where N.Number between 1 and @XML.value('count(/Rows/Row)', 'int')

关于xml - 获取xml元素在SQL Server 2012中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23836226/

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