gpt4 book ai didi

sql - 如何将一行扩展为多行结果集?

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

我有一个表格,我试图根据第二列的值将每一行分成一行或多行。像这样:

table (id, pcs):
ABC 3
DEF 1
GHJ 4

query result (id, pcs_num):
ABC 1
ABC 2
ABC 3
DEF 1
GHJ 1
GHJ 2
GHJ 3
GHJ 4

我正在将其作为 SQL Server 2008 中的 sproc 编写。我最好的解决方案是使用游标并将 [pcs] 行数添加到临时表中的每一行。似乎必须有一个比我缺少的更简单的解决方案。谢谢。

最佳答案

您可以使用递归 CTE:

;WITH CTE AS
(
SELECT *
FROM YourTable
UNION ALL
SELECT id, pcs-1
FROM CTE
WHERE pcs-1 >= 1
)
SELECT *
FROM CTE
ORDER BY id, pcs
OPTION(MAXRECURSION 0)

Here is a demo供你尝试。

关于sql - 如何将一行扩展为多行结果集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13385574/

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