Redrock Postgres 搜索 英文
版本: 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17

10.6. SELECT 输出列 #

前述部分中给出的规则将导致在 SQL 查询中为所有表达式分配非 unknown 数据类型,但用作 SELECT 命令的简单输出列中出现、类型未指定的文字除外。例如,在

SELECT 'Hello World';

中没有任何东西可以识别出字符串文字应该用作什么类型。在这种情况下,PostgreSQL 将回退到将文字的类型解析为 text

SELECTUNION(或者 INTERSECTEXCEPT)结构的一支,或者出现在 INSERT ... SELECT 中时,由于前述章节中给出的规则具有优先权,因此此规则不会应用。在这种情况下,可以从第一个 UNION 中提取未指定类型文字的类型,或从第二个情况的目标列中提取文字的类型。

RETURNING 列表为此目的被视为与 SELECT 输出列表相同。

注意

PostgreSQL 10 之前,没有此规则,并且 SELECT 输出列表中类型未指定的文字保留为 unknown 类型。这种情况产生了各种不良后果,因此已对其进行了更改。