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