受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发版本: devel

10.6. SELECT 输出列 #

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

SELECT 'Hello World';

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

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

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

Note

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

提交更正

如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。