gpt4 book ai didi

sql-server - sql server - 将单个 ID 合并到范围内

转载 作者:行者123 更新时间:2023-12-04 06:22:41 27 4
gpt4 key购买 nike

我有一个包含大量整数的表。该表被查询,结果最终被转换为 xml。例如,如果该表包含以下项目:

SELECT itemId FROM items WHERE enabled = true
1
2
3
5

经过一些处理后,我的最终 xml 输出将是:
 <item id="1" />
<item id="2" />
<item id="3" />
<item id="5" />

xml 最终变得相当大,而且很多项目实际上是范围。我想要做的是更新我的查询以组合范围(这些项目中的很多都是“邻居”,因此生成的 xml 会小很多)。我试图让程序结果更像这样:
1-3
5

所以最终的 XML 看起来像这样(如果我可以改变程序,XML 处理可以保持不变):
<item id="1-3"/>
<item id="5"/>

我在想我最好的方法可能是使用自连接,其中 table1.itemId = table2.itemId - 1但我一直无法让它工作。有没有人对我如何解决这个问题有任何建议?

最佳答案

这会有帮助吗?

SELECT
MIN(ItemID)
,MAX(ItemID)
FROM
(
SELECT ItemID, RANK() OVER (ORDER BY ItemID) R FROM Items
) Tmp
GROUP BY
ItemID - R

关于sql-server - sql server - 将单个 ID 合并到范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6377507/

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