DUALテーブルは1列のみのテーブルだ。
OracleではFROM句を省略できないため参照するテーブルがない場合 FROM DUAL のようにDUALテーブルを指定する。
このDUALテーブルの取り扱いはRDBMSによって異なり、定義されていないものもある。
そこでDUALテーブルの扱いを各種RDBMS毎にまとめた。
| DB | FROM句の省略 | DUALテーブル |
|---|---|---|
| DB2 | できない | あるがSYSIBM配下に存在する。DUALだけで名前解決したい場合Oracle互換モードにする必要がある。 |
| MySQL | できる | ある |
| Oracle | できない | ある |
| PostgreSQL | できる | ない |
| SQL Server | できる | ない |
DB2のOracle互換モードについてはドキュメントに記載されている。 https://www.ibm.com/docs/ja/db2/10.1.0?topic=features-db2-compatibility-vector-registry-variable