5

Postgres で「匿名テーブル」(つまり、データベースにないデータに基づく一時的なクエリ) を作成したい場合は、次のように使用できますVALUES

select * from (values (1, 'Hello world'), (100, 'Another row')) as foo (mycol1, mycol2);

しかし、行のない匿名テーブルを作成するにはどうすればよいでしょうか? (これはコード ジェネレーター用なので、質問は思ったほど奇妙ではありません!)。以下は動作しません

select * from (values  ) as foo (mycol1, mycol2);

私が得るので

ERROR:  syntax error at or near ")"
LINE 1: select * from (values  ) as foo (mycol1, mycol2);
                               ^

私は回避策を知っています

select * from (values (NULL, NULL)) as foo (mycol1, mycol2) where mycol1 is not NULL;

しかし、より良い、または「より公式な」方法はありますか?

(列のないテーブルを作成できるかどうかも知りたいです!)

4

2 に答える 2

4

次のようなことができると思います:

select null::text as a, null::int as b
limit 0
于 2013-09-18T16:52:33.630 に答える