私はなぜ2つのvarcharの連結結果が私にテキストタイプを与えるのだろうかと思います。PostgreSQL 9.6のvarcharの連結
select 'Plural'::varchar || 'sight'::varchar;
連結の 'text'タイプPGAdmin3(server:9.4)の出力にあります。
私はなぜ2つのvarcharの連結結果が私にテキストタイプを与えるのだろうかと思います。PostgreSQL 9.6のvarcharの連結
select 'Plural'::varchar || 'sight'::varchar;
連結の 'text'タイプPGAdmin3(server:9.4)の出力にあります。
Table 9-8. SQL String Functions and Operators
string || string
- 戻り値の型のテキスト
はまたタイプType conversion例えば文字列連結演算子型の解決で読みます。
また、I textはpostgresのデフォルトの文字列型です。したがって、データ型を混在させると、デフォルトでstringのテキストになります。
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はvarchar
をtext
にキャストします(これはこのタイプのカテゴリでは好ましいタイプです)。
この結果は、text
にもなります。
彼らは、私たちはそのように作成しているので: https://www.postgresql.org/docs/9.4/static/functions-string.html
はまた、あなたはタイプを定義するためのpgAdminでは必要ありいけない: 'pg_typeof( '複数の' :: varchar型|| '光景' :: varchar型)を選択します;' –