LoginSignup
2
3

More than 1 year has passed since last update.

RBDMSごとのダミーテーブルについて

Posted at

SQLを書く際、以下のような場合に、1行だけのダミーテーブルが欲しいことがある。その際に利用できるダミーテーブルをRBDMSごとに記載する。

例:

  • 関数で現在日時だけ取りたい (SELECT sysdate FROM ~)
  • シーケンス採番したい (SELECT test.test_sql.nextval FROM ~)
  • 計算機代わりにしたい (SELECT 60 * 60 * 24 * 365 FROM ~)
  • 正規表現があってるか確認したい (SELECT REGEXP_LIKE('ABC', '[0-9][A-Z]*') FROM ~)

Oracle

Oracleの場合はDUAL表を利用する。

SELECT * FROM DUAL

実行結果:

DUMMY
x

参考:https://docs.oracle.com/cd/F19136_01/sqlrf/Selecting-from-the-DUAL-Table.html

DB2

DB2の場合はSYSDUMMY1表を利用する。

SELECT * FROM SYSIBM.SYSDUMMY1

実行結果:

IBMREQD
Y

参考:https://www.ibm.com/docs/ja/db2/11.1?topic=cv-sysibmsysdummy1

Symfoware

Symfowareの場合はRDBII_ASSISTTABLEを使用する。

SELECT * FROM RDBII_SYSTEM.RDBII_ASSISTTABLE

実行結果:

ASSISTCOLUMN
1

参考:https://software.fujitsu.com/jp/manual/manualfiles/M080271/J2X02268/03Z201/aplsqae/aplsq179.html

上記以外のDB

上記以外のDBでは、基本的にFROM句が省略可能となっているため、単純にFROM句を記載しないだけでよい

以下は、事情によりFROM句を省略できない場合に利用できる方法を記載する。

SELECT * FROM (SELECT 1 AS DUMMY) AS DUAL

実行結果:

DUMMY
1

対象:

  • SQL Server
  • Postgresql
  • MySQL
  • SQLite
  • etc.
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