テーブルに依らないクエリ

 テーブルなしのクエリについて。目新しさも実用性もほぼ皆無のメモです。

f:id:accs2014:20160815223910p:plain:right:w300

 クエリデザインにおいてデータソースとなるテーブルを指定していないと、「クエリの入力には、1つ以上のテーブルまたはクエリが必要です」というエラーが出ますが、テーブルのないクエリというのは厳密には不可能ではありません。
 次のSQLのように複数の値を横並びにするだけであれば…

SELECT 1 AS 数字, "A" AS 文字;


f:id:accs2014:20160815223911p:plain:right:w300

 きちんと表示されます。 
 しかし、複数の行を持たせることはできませんので(SELECT文をUNION句でつないでもやはりエラーとなります)、一般的な形のテーブルを作るのは困難です。


f:id:accs2014:20160815231602p:plain:right:w400

 ただ、FROM句に既存のテーブルを置きつつ、その内容と無関係な任意のクエリを作成することは可能です。
 SQLの例は次のようなものとなります。「無関係なテーブル」というのが既存のテーブルです。

SELECT 1 AS 数字,"A" AS 文字 FROM 無関係なテーブル UNION SELECT 2,"B" FROM 無関係なテーブル;


f:id:accs2014:20160815231603p:plain:right:w300

 データシートビューです。「無関係なテーブル」の内容に関わりなくクエリのデータシートビューはこうなります(ただし「無関係なテーブル」は1行以上のデータを持っている必要があります)。
 「クエリは欲しいがどうしてもテーブルを作りたくない/作れない」という場合はぜひ;-o-)