PostgreSQL 18 中文参考文档(未翻译部分保留英文)🌐 切换到英文原版 →

10.6. SELECT 输出列 #

上述各节介绍的规则能够确保 SQL 查询中的几乎所有表达式都被赋予确定且非 unknown 的明确数据类型。唯一的特例是作为 SELECT 顶层选择列表中简单输出列出现的无类型字面常量。例如:

SELECT 'Hello World';

由于缺少任何上下文信息指示该字符串应当解释为哪种具体类型,PostgreSQL 遵循标准降级回退机制,将该字面量的返回类型默认推断为 text。

当 SELECT 处于 UNION 的分支中或处于 INSERT ... SELECT 语句中时,该回退规则不生效,因为前述章节的优先级规则更高,能够直接从另一分支或目标列继承确切类型。