LoginSignup
2
3

More than 3 years have passed since last update.

再帰的な共通表式で補助テーブルを作成する

Posted at

共通表式(WITH句)を再帰的に定義することで、連番などの補助テーブルを楽に作成することができる。
今回は、現在の時刻から、当日中の時刻を15分間隔で列挙するクエリを作成してみた。

WITH TimeTable (point, interval) AS
(
    SELECT
        GETDATE(), 15
    UNION ALL
    SELECT
        DATEADD(minute,interval,point), interval
    FROM
        TimeTable
    WHERE
        DATEADD(minute,interval,point) < CAST(DATEADD(day,1,GETDATE()) AS date)
)

SELECT point FROM TimeTable

/* 結果
point
-----------------------
2019-04-28 20:27:17.327
2019-04-28 20:42:17.327
2019-04-28 20:57:17.327
2019-04-28 21:12:17.327
2019-04-28 21:27:17.327
2019-04-28 21:42:17.327
2019-04-28 21:57:17.327
2019-04-28 22:12:17.327
2019-04-28 22:27:17.327
2019-04-28 22:42:17.327
2019-04-28 22:57:17.327
2019-04-28 23:12:17.327
2019-04-28 23:27:17.327
2019-04-28 23:42:17.327
2019-04-28 23:57:17.327
*/
2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3