[英]How to create an empty anonymous table in Postgres?
在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;
但是有没有更好或更“官方”的方式呢?
(我也想知道是否可以创建一个没有列的表!)
我认为您可以执行以下操作:
select null::text as a, null::int as b
limit 0
SELECT *
FROM generate_series(0, -1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.