我找下面的解釋,如果我運行像這樣的東西,我得到一個unknown
類型,「未知」和類型推斷的規則是什麼?
SELECT pg_typeof(a)
FROM (SELECT null) AS t(a);
pg_typeof
-----------
unknown
(1 row)
然而,隨着更多的複雜性就變得text
神奇,
SELECT pg_typeof(a)
FROM (
SELECT null
UNION SELECT null
) AS t(a);
pg_typeof
-----------
text
(1 row)
明確鑄造沒有改變,這也返回text
,
SELECT pg_typeof(a)
FROM (
SELECT null::unknown
UNION SELECT null::unknown
) AS t(a);
它是如下usingly這個工作,
SELECT pg_typeof(a)
FROM (
SELECT null
UNION SELECT 42
) AS t(a);
但是,這不,
SELECT pg_typeof(a)
FROM (
SELECT null
UNION SELECT null
UNION SELECT 42
) AS t(a);
什麼用途的unknown
類型有過一次,如果它認爲是在上述情況下的文字?
我投票決定關閉自己的問題,因爲我認爲這是對[dba.se]更好的匹配 –
我投遷移過,但我不知道它是值得的:這些案件[完美描述在文檔](https://www.postgresql.org/docs/current/static/typeconv-union-case.html)(第3點) - 除了最後一個。這只是一個[優先問題](http://rextester.com/TNG47898)。 – pozs