且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2023-08-28 14:47:16

您可以使用递归 CTE:

You can use a recursive 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)

这里有一个演示供您尝试.