↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10
测试版PostgreSQL 19 RC 1 尚未正式发布,内容与行为在正式发布前可能变化。正式内容请看当前版本。

10.6. SELECT 输出列 #

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

SELECT 'Hello World';

中,没有任何信息能够表明这个字符串字面量应该视为哪种类型。在这种情况下,PostgreSQL 会退回到把该字面量解析为 text 类型。

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

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

注意

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

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游会在正式发布前持续修订。