SQL Server 2008 Express で再帰クエリを使う

2005からサポートされている「WITH 共通表式」。
これを使うと、クエリの再帰が書ける。

今回の例はレコード増殖クエリ♪


SQL

WITH
    T1 AS(
         SELECT
             1 SEQ,
             REPLICATE('X', 10) TXT
         UNION ALL
         SELECT
             SEQ + 1 SEQ,
             TXT
         FROM
             T1
         )
SELECT
    TOP(10)
    *
FROM
    T1

■結果

SEQ	TXT
1	XXXXXXXXXX
2	XXXXXXXXXX
3	XXXXXXXXXX
4	XXXXXXXXXX
5	XXXXXXXXXX
6	XXXXXXXXXX
7	XXXXXXXXXX
8	XXXXXXXXXX
9	XXXXXXXXXX
10	XXXXXXXXXX


この結果と直積したりて、テストデータつくるもよしw
ビルトイン関数組み合わせてカレンダー作るもよしww

使いどころもりだくさん?

Work! Enjoy it!