我想根据计数字段复制一行字段示例:
ID | Row1 | Row2 | Row3 | count
-----------------------------------------------
1 | MR | fred | Flint | 14
因此,将ID 1行另外复制13次以制作14条记录。然后将复制的每个记录的计数字段更改为1,并将原始行更改为1.
我认为使用CTE和row_number会有效吗?但不确定如何实现。
答案 0 :(得分:2)
好吧,您可以像这样使用CTE
和ROW_NUMBER
:
WITH CTE AS
(
SELECT A.*,
RN = ROW_NUMBER() OVER(PARTITION BY A.ID ORDER BY A.ID)
FROM dbo.YourTable A
CROSS JOIN sys.all_objects B
)
SELECT ID,
Row1,
Row2,
Row3,
1 [count]
FROM CTE
WHERE RN <= [count]
AND [ID] = 1;
*免责声明:这假定sys.all_objects
的行数多于count
的值