摘要:在本教程中,您將學習如何使用 SQL CONCAT 函式將兩個或多個字串拼接成一個字串。
SQL CONCAT 函式簡介 #
SQL CONCAT 函式將兩個或多個字串拼接成一個字串。
下面是 CONCAT 函式的語法:
CONCAT(string1, string2,..);Code language: SQL (Structured Query Language) (sql)要拼接多個字串,您可以將它們作為逗號分隔的引數列表傳遞給 CONCAT 函式。
CONCAT 函式返回一個由輸入字串組合而成的字串。如果其中一個引數為 NULL,它將返回 NULL。
您可以使用 IS NULL 運算子或 COALESCE 和 NULLIF 函式來處理 NULL。
大多數資料庫系統都支援 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函式將兩個或多個字串拼接成一個字串。