繁体   English   中英

如何在Postgres中创建一个空的匿名表?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM