他のバージョンの文書10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

10.6. SELECT出力列

これまでの節で挙げた規則は、SELECTコマンドの単純な出力列として現れる型の指定されていないリテラルを除いて、SQL問い合わせでunknownでないデータ型をすべての式に割り当てることになります。 例えば、以下で

SELECT 'Hello World';

文字列リテラルをどの型とみなすべきかを示すものは何もありません。 この状況ではPostgreSQLはリテラルの型をtextとして解決することになります。

SELECTUNION(またはINTERSECT、またはEXCEPT)構文の片方である場合やINSERT ... SELECTの中に現れる場合は、これまでの節で挙げた規則が優先しますので、この規則は適用されません。 型の指定されていないリテラルの型は、1番目の場合にはUNIONの他の側から、2番目の場合には対象とする列から取られるでしょう。

RETURNINGリストは、この目的のためにSELECT出力リストと同様に扱われます。

注記

PostgreSQL 10より前では、この規則は存在せず、SELECT出力リストの中の型の指定されていないリテラルは型unknownのままでした。 これは様々な悪い結果をもたらしましたので、変更されました。