在 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;
但是有更好或“更官方”的方式吗?
(我也很想知道是否可以创建一个没有列的表!)