2017-01-31 15 views
0

私はなぜ2つのvarcharの連結結果が私にテキストタイプを与えるのだろうかと思います。PostgreSQL 9.6のvarcharの連結

select 'Plural'::varchar || 'sight'::varchar; 

連結の 'text'タイプPGAdmin3(server:9.4)の出力にあります。

+0

はまた、あなたはタイプを定義するためのpgAdminでは必要ありいけない: 'pg_typeof( '複数の' :: varchar型|| '光景' :: varchar型)を選択します;' –

答えて

0

Table 9-8. SQL String Functions and Operators

string || string - 戻り値の型のテキスト

はまたタイプType conversion例えば文字列連結演算子型の解決で読みます。

また、I textはpostgresのデフォルトの文字列型です。したがって、データ型を混在させると、デフォルトでstringのテキストになります。

5
test=> \doS || 
              List of operators 
┌────────────┬──────┬───────────────┬────────────────┬─────────────┬─────────────────────────────────────┐ 
│ Schema │ Name │ Left arg type │ Right arg type │ Result type │    Description    │ 
├────────────┼──────┼───────────────┼────────────────┼─────────────┼─────────────────────────────────────┤ 
│ pg_catalog │ || │ anyarray  │ anyarray  │ anyarray │ concatenate       │ 
│ pg_catalog │ || │ anyarray  │ anyelement  │ anyarray │ append element onto end of array │ 
│ pg_catalog │ || │ anyelement │ anyarray  │ anyarray │ prepend element onto front of array │ 
│ pg_catalog │ || │ anynonarray │ text   │ text  │ concatenate       │ 
│ pg_catalog │ || │ bit varying │ bit varying │ bit varying │ concatenate       │ 
│ pg_catalog │ || │ bytea   │ bytea   │ bytea  │ concatenate       │ 
│ pg_catalog │ || │ jsonb   │ jsonb   │ jsonb  │ concatenate       │ 
│ pg_catalog │ || │ text   │ anynonarray │ text  │ concatenate       │ 
│ pg_catalog │ || │ text   │ text   │ text  │ concatenate       │ 
│ pg_catalog │ || │ tsquery  │ tsquery  │ tsquery  │ OR-concatenate      │ 
│ pg_catalog │ || │ tsvector  │ tsvector  │ tsvector │ concatenate       │ 
└────────────┴──────┴───────────────┴────────────────┴─────────────┴─────────────────────────────────────┘ 
(11 rows) 

varcharには||演算子はありません。 PostgreSQLはvarchartextにキャストします(これはこのタイプのカテゴリでは好ましいタイプです)。

この結果は、textにもなります。

関連する問題