2024 年 9 月 26 日: PostgreSQL 17 发布!
支持版本:当前 (17) / 16 / 15 / 14 / 13 / 12
开发版本:devel
不支持的版本:11 / 10

10.6. SELECT 输出列 #

在前面部分给出的规则会导致将非 unknown 数据类型分配给 SQL 查询中的所有表达式,除了作为 SELECT 命令的简单输出列出现的未指定类型字面量。例如,在

SELECT 'Hello World';

中,没有任何东西可以识别应将字符串字面量视为哪种类型。在这种情况下,PostgreSQL 将回退到将字面量的类型解析为 text

SELECTUNION(或 INTERSECTEXCEPT)结构的一个分支,或者当它出现在 INSERT ... SELECT 中时,此规则不适用,因为前面部分给出的规则优先。未指定类型字面量的类型可以从第一种情况下的另一个 UNION 分支获取,或者从第二种情况下的目标列获取。

RETURNING 列表在此目的上与 SELECT 输出列表的处理方式相同。

注意

PostgreSQL 10 之前,此规则不存在,并且 SELECT 输出列表中的未指定类型字面量保持为 unknown 类型。这产生了各种不良后果,因此已更改。

提交更正

如果您在文档中看到任何不正确的内容,与您对特定功能的体验不符,或者需要进一步说明,请使用 此表格 报告文档问题。