SELECT
輸出列 #前面各節給出的規則將導致 SQL 查詢中的所有表示式都被賦予非 unknown
的資料型別,但 SELECT
命令的簡單輸出列中出現的未指定型別的字面量除外。例如,在
SELECT 'Hello World';
沒有辦法確定該字串字面量的型別應該是怎樣的。在這種情況下,PostgreSQL 將回退並將該字面量的型別解析為 text
。
當 SELECT
是 UNION
(或 INTERSECT
或 EXCEPT
)構造的一部分,或者當它出現在 INSERT ... SELECT
中時,此規則不適用,因為前面各節中的規則優先。在第一種情況下,未指定型別字面量的型別可以從另一個 UNION
分支獲取,在第二種情況下,可以從目標列獲取。
出於此目的,RETURNING
列表與 SELECT
輸出列表的處理方式相同。
在 PostgreSQL 10 之前,此規則不存在,並且 SELECT
輸出列表中的未指定型別字面量將保留為 unknown
型別。這帶來了一系列不好的後果,因此已被更改。
如果您在文件中看到任何不正確之處、與您實際使用的特定功能不符之處,或者需要進一步澄清之處,請使用 此表單 來報告文件問題。