↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10
历史版本。 PostgreSQL 11 已结束支持。 2023-11-09. 请参阅 当前版本手册.

10.6. SELECT 输出列 #

前面各节给出的规则会为 SQL 查询中的所有表达式赋予非 unknown 数据类型,但作为 SELECT 命令的简单输出列出现的未指定类型字面量除外。例如,在

SELECT 'Hello World';

中,没有任何信息可用于确定应将该字符串字面量视为什么类型。在这种情况下,PostgreSQL 会回退为将该字面量的类型解析为 text。

当 SELECT 是 UNION(或 INTERSECT、EXCEPT)结构的一端,或者出现在 INSERT ... SELECT 中时,这条规则不适用,因为前面各节给出的规则具有更高优先级。在前一种情况下,未指定类型字面量的类型可以从 UNION 的另一侧取得;在后一种情况下,则从目标列取得。

为此目的,RETURNING 列表与 SELECT 输出列表一视同仁。

注意

在 PostgreSQL 10 之前,这条规则并不存在,SELECT 输出列表中的未指定类型字面量会被保留为 unknown 类型。这会带来各种不良后果,因此后来做了修改。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.