摘要:在本教程中,您将学习如何使用 SQL CONCAT 函数将两个或多个字符串串联成一个字符串。
SQL CONCAT 函数简介
SQL CONCAT
函数将两个或多个字符串串联成一个字符串。下面展示了 CONCAT
函数的语法
CONCAT(string1,string2,..);
Code language: SQL (Structured Query Language) (sql)
要串联字符串,可将字符串作为以逗号分隔的参数列表传递给该函数。
CONCAT
函数返回一个字符串,此字符串为输入字符串的组合。如果参数中有一个为 NULL
,则返回 NULL
。(要更有效地处理 NULL
值,可使用 IS NULL
运算符或 COALESCE
和 NULLIF
函数。)
大多数关系数据库系统支持 CONCAT
函数,但它们之间存在一些差异。例如,MySQL CONCAT
函数允许您串联两个以上的字符串,而 Oracle CONCAT
函数只串联两个字符串。
除了使用 CONCAT
函数,您还可以使用串联运算符,例如,在 Oracle 和 PostgreSQL 中,您可使用 ||
运算符串联两个或多个字符串。而在 Microsoft SQL Server 中,您使用 +
运算符。
SQL CONCAT 示例
以下语句使用 CONCAT
函数串联两个字符串
SELECT CONCAT('SQL CONCAT function', ' demo');
Code language: SQL (Structured Query Language) (sql)
concat
----------------------
SQL CONCAT function demo
(1 row)
Code language: SQL (Structured Query Language) (sql)
以下语句使用 CONCAT
函数通过串联名字、空格和姓氏来返回员工的全名。
SELECT
CONCAT(first_name, ' ', last_name) AS name
FROM
employees
ORDER BY name;
Code language: SQL (Structured Query Language) (sql)

如果您使用 Oracle 数据库,您必须应用两次 CONCAT
函数才能实现相同的结果。参见以下查询
SELECT
CONCAT(CONCAT(first_name, ' '), last_name) AS name
FROM
employees
ORDER BY name;
Code language: SQL (Structured Query Language) (sql)
内部的 CONCAT
函数将名字与空格串联,外部的 CONCAT
函数将内部 CONCAT
函数的结果与姓氏串联。
如果您使用 Oracle(以及 PostgreSQL)中的串联运算符,则会更加清晰。
SELECT
(first_name || ' ' || last_name) AS name
FROM
employees
ORDER BY name;
Code language: SQL (Structured Query Language) (sql)
在 Microsoft SQL Server 中,您将使用以下查询
SELECT
(first_name + ' ' + last_name) AS name
FROM
employees
ORDER BY name;
Code language: SQL (Structured Query Language) (sql)
如果您使用 MySQL 或 PostgreSQL,您可以使用 CONCAT_WS
函数使用分隔符串联字符串。
CONCAT_WS(separator,string1,string2,...);
Code language: SQL (Structured Query Language) (sql)
例如,您可以使用 CONCAT_WS
函数如下构建员工全名
SELECT
CONCAT_WS(' ',first_name,last_name) AS name
FROM
employees
ORDER BY name;
Code language: SQL (Structured Query Language) (sql)
在本教程中,您学习了如何使用 SQL CONCAT
函数将两个或多个字符串串联成一个字符串。