类别:

:doc:`/sql-reference/functions-string`(通用)

CONCAT、||

连接一个或多个字符串,或连接一个或多个二进制值。

|| 运算符提供了替代的 CONCAT 语法,并且至少需要两个实参。

另请参阅:

CONCAT_WS

语法

CONCAT( <expr> [ , <expr> ... ] )

<expr> || <expr> [ || <expr> ... ]
Copy

实参

expr

输入表达式必须全部为字符串,或全部为二进制值。

返回

返回值的数据类型与输入值的数据类型相同。

如果任一输入值是 NULL,则返回 NULL。

使用说明

元数据函数(如 GET_DDL)仅接受常量作为输入。连接的输入会生成错误。

排序规则详细信息

示例

连接两个字符串:

SELECT CONCAT('George Washington ', 'Carver');
Copy
+----------------------------------------+
| CONCAT('GEORGE WASHINGTON ', 'CARVER') |
|----------------------------------------|
| George Washington Carver               |
+----------------------------------------+

连接两个 VARCHAR 列。首先,创建一个表并插入数据:

CREATE OR REPLACE TABLE concat_function_example (s1 VARCHAR, s2 VARCHAR, s3 VARCHAR);
INSERT INTO concat_function_example (s1, s2, s3) VALUES
  ('co', 'd', 'e'),
  ('Colorado ', 'River ', NULL);
Copy

运行查询:

SELECT CONCAT(s1, s2)
  FROM concat_function_example;
Copy
+-----------------+
| CONCAT(S1, S2)  |
|-----------------|
| cod             |
| Colorado River  |
+-----------------+

连接两个以上的字符串:

SELECT CONCAT(s1, s2, s3)
  FROM concat_function_example;
Copy
+--------------------+
| CONCAT(S1, S2, S3) |
|--------------------|
| code               |
| NULL               |
+--------------------+

使用 IFF 与 CONCAT 函数连接不是 NULL 的字符串:

SELECT CONCAT(
    IFF(s1 IS NULL, '', s1),
    IFF(s2 IS NULL, '', s2),
    IFF(s3 IS NULL, '', s3)) AS concat_non_null_strings
  FROM concat_function_example;
Copy
+-------------------------+
| CONCAT_NON_NULL_STRINGS |
|-------------------------|
| code                    |
| Colorado River          |
+-------------------------+

使用 || 连接运算符而不是函数:

SELECT 'This ' || 'is ' || 'another ' || 'concatenation ' || 'technique.';
Copy
+--------------------------------------------------------------------+
| 'THIS ' || 'IS ' || 'ANOTHER ' || 'CONCATENATION ' || 'TECHNIQUE.' |
|--------------------------------------------------------------------|
| This is another concatenation technique.                           |
+--------------------------------------------------------------------+
语言: 中文