UNION SQL構文は、似ていない可能性がある型を1つの検索結果になるように適合させなければなりません。 解決アルゴリズムは1つのunion問い合わせの出力列毎に適用されます。 INTERSECT構文とEXCEPT構文は UNIONと同じ方法で、似ていない可能性がある型の解決を行います。 CASE構文とARRAY構文もまた、同一のアルゴリズムを使用して、その要素式を適合させ、結果のデータ型を選択します。
UNION、CASEおよびARRAYの型解決
もし全ての入力値が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として解決されます。