SELECT 输出列 #前面章节中给出的规则将导致为 SQL 查询中的所有表达式分配非 unknown 数据类型,除了作为 SELECT 命令的简单输出列出现的未指定类型的字面量。例如,在
SELECT 'Hello World';
中,没有任何东西可以标识字符串字面量应该被视为哪种类型。在这种情况下,PostgreSQL 将回退到将字面量的类型解析为 text。
当 SELECT 是 UNION(或 INTERSECT 或 EXCEPT)结构的其中一个分支时,或者当它出现在 INSERT ... SELECT 中时,此规则不适用,因为前面章节中给出的规则具有优先权。未指定类型的字面量的类型可以从第一种情况下的另一个 UNION 分支中获取,或者从第二种情况下的目标列中获取。
RETURNING 列表的处理方式与此目的的 SELECT 输出列表相同。
在 PostgreSQL 10 之前,此规则不存在,SELECT 输出列表中的未指定类型字面量保持为 unknown 类型。这会带来各种不良后果,因此进行了更改。
如果您发现文档中有任何不正确的内容,与您使用特定功能的经验不符,或需要进一步澄清,请使用此表格报告文档问题。