ダミーテーブルについてご紹介します。
#★ダミーテーブルとは★
各DBにセットアップ時から存在する、1行しかデータの存在しないテーブルのことです。
カレンダーを管理しているテーブル等を参照することなく、
SQL発行のみでシステム日付の取得や連番作成を行うことが可能です。
また、工夫次第でカレンダーテーブルを参照することなく、
現在から100年後までのカレンダーとその曜日を取得することが可能です。
##☆使用方法について☆
ダミーテーブルの中身はSELECT句で作成します。
###・ORACLE
SELECT '1' AS DUMMY 1
FROM DUAL ←ORACLEのダミーテーブル名
上記のSQLを発行すると項目名はDUMMYで中身が1のテーブルができます。
以下、出力結果
DUMMY ←項目名
1 ←値
システム日付を取得する際は、以下のように記載することで取得することが可能です。
SELECT SYSDATE
FROM DUAL
※各DBにおけるダミーテーブルの名前はそれぞれでシステム日付等の取得方法も異なります。
##★使用例★
ORACLEにおけるダミーテーブルのみを使用した2014年2月のカレンダー日付の取得方法の一例を紹介します。
SELECT TO_DATE(STARTDATE + ROWNUM -1, 'YYYY/MM/DD') AS CALENDAR
FROM
(SELECT TRUNC(TO_DATE('2014-02-01')) AS STARTDATE,
TO_NUMBER(TO_CHAR(LAST_DAY(TO_DATE('2014-02-01')), 'DD')) AS DAYS
FROM DUAL),
ALL_CATALOG
WHERE ROWNUM <= DAYS
以下、出力結果
CALENDAR
14-02-01
14-02-02
14-02-03
14-02-04
14-02-05
14-02-06
14-02-07
14-02-08
14-02-09
14-02-10
14-02-11
14-02-12
14-02-13
14-02-14
14-02-15
14-02-16
14-02-17
14-02-18
14-02-19
14-02-20
14-02-21
14-02-22
14-02-23
14-02-24
14-02-25
14-02-26
14-02-27
14-02-28
#★最後に★
今回はカレンダー日付を取得することに重点を置きダミーテーブルについてご紹介しましたが、
SELECT句によりテーブルの中身は変えることが可能ですので、
工夫次第でさまざまな使用方法があります。
ですので、機会があればぜひ使用してみてください。