我将如何根据NoOfRows字段将n行数插入到另一个表(B)中。
Table A Source Table
ID | NoOfRows
---------
1 | 3
2 | 2
Table B Created/Destination table
ID | enabled
---------
1 | true
1 | true
1 | true
2 | true
2 | true
启用只是一个将始终设置为 true 的字段
一种方法使用数字表。 这里有一种方法是有效的,除非你的计数非常高:
with n as (
select row_number() over (order by (select null)) as n
from master..spt_values
)
select id, 1 as enabled
from a join
n
on n.n <= a.count;
如果环境中有其他序列号源,则可以使用该源。
另外,我使用"1"表示"真";SQL Server 没有布尔类型。
INSERT INTO TableA (ID , [Count])
SELECT ID , COUNT(*)
FROM TableB
WHERE [enabled] = 'true'
GROUP BY ID