UNION SQL構文は、似ていない可能性がある型を1つの検索結果になるように適合させなければなりません。
解決アルゴリズムは1つのunion問い合わせの出力列ごとに適用されます。
INTERSECT構文とEXCEPT構文は、UNIONと同じ方法で、似ていない可能性がある型の解決を行います。
CASE構文とARRAY構文、VALUES、GREATEST
、LEAST
もまた、同一のアルゴリズムを使用して、その要素式を適合させ、結果のデータ型を選択します。
UNION、CASEおよび関連する構文の型解決
もし全ての入力値がunknown型だった場合、text型(文字列カテゴリの好ましい型)として解決されます。 そうでない場合は、結果型を選ぶ間はunknown入力は無視します。
もしunknownではない入力値が全て同じ型カテゴリでなければ失敗します。
最初のunknownではない入力データ型を選択します。 このデータ型は、そのカテゴリの好ましい型であるか、もしくは全てのunknownではない入力値を暗黙的にこのデータ型に型変換することを可能にします。
全ての入力値を選択された型に変換します。
以下に例を示します。
例 10-7. Unionにおける指定された型の型解決
SELECT text 'a' AS "text" UNION SELECT 'b'; text ------ a b (2 rows)
ここで、unknown型のリテラル'b'はtextとして解決されます。