首页 > 解决方案 > 选择“Foo”,“Bar”不返回任何内容

问题描述

我刚开始使用 Postgre SQL,我已经在 Oracle 和 pl/sql 上工作了大约 5 年。

我正在尝试做一个简单的选择语句,但没有得到我期望的结果。

我的代码如下:

SELECT 'Foo','Bar'
FROM   APP_TABLE

APP_TABLE 是我数据库中的一个表。运行时,它返回 0 条记录。在 Oracle 中,这将返回 [Foo][Bar] 作为我的结果。为什么这不会在 Postgres 中返回任何内容?

通过一些研究,我发现这有效:

SELECT  'Foo','Bar' 
FROM    (Values('1'))

我得到了预期的 [Foo][Bar] 作为我的结果,但不确定这是最好的方法。任何帮助表示赞赏!

标签: sqlpostgresql

解决方案


您可以创建一个dual只有 1 行和 1 个字段的虚拟表。

您也可以使用 Postgres 的方式,根本不指定任何表:

SELECT 'Foo','Bar';
 ?column? | ?column?
----------+----------
 Foo      | Bar
(1 row)

推荐阅读