SELECTで抽出したデータをn回作成するためにCROSS JOINを使用する。
CROSS JOINの中のvalues(1),(2)…(n)と追加することにより、n回の重複したレコードを出力させる
---テーブル変数を定義
declare @table table
(
col1 nvarchar(10),
col2 nvarchar(10),
col3 nvarchar(10))
---仮に3レコードを想定
insert into @table values ('row1-1','row1-2','row1-3'),
('row2-1','row2-2','row2-3'),
('row3-1','row3-2','row3-3')
---3レコードが抽出される
select *
from @table
---各々2レコードずつに重複して、合計6レコードとなる
select *
from @table cross join(values(1),(2))t(x)