Postgresql 9.6 varchar的串联

时间:2017-01-31 12:39:51

标签: postgresql postgresql-9.4

我想知道为什么两个varchar的连接在结果中给出了我的文本类型。

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

在PGAdmin3(服务器:9.4)的输出中输入串联的“文本”。

3 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:2)

Table 9-8. SQL String Functions and Operators

  

string || string - 返回类型文字

同时阅读类型Type conversion,例如字符串连接运算符类型解析

而且我的文本是postgres的默认字符串类型,所以当你混合数据类型时,它们将默认为string的文本。

答案 2 :(得分:0)