首页/数据/SQL 速查/CONCAT 字符串拼接
本包目录(311 条)
查询基础33 条连接与子查询40 条聚合与窗口函数54 条
函数速查60 条
变更与事务52 条性能与执行计划72 条

CONCAT 字符串拼接

拼接多个字符串:MySQL 的 CONCAT 遇到 NULL 会让整行结果变 NULL,带分隔符拼接用 CONCAT_WS 会跳过 NULL 项。

SQL 速查数据更新于 2026-10-12

示例

示例
SELECT CONCAT(first_name, ' ', last_name) AS full_name
FROM users;

-- 分隔拼接:NULL 项被跳过
SELECT CONCAT_WS('-', 'A', NULL, 'B');   -- 'A-B'
CONCAT任一参数为 NULL 则结果为 NULL
CONCAT_WS跳过 NULL 参数;分隔符本身为 NULL 时返回 NULL
PostgreSQL|| 拼接遇 NULL 结果为 NULL;concat() 函数忽略 NULL
MySQL 默认 || 表示逻辑或,不能当拼接用;需要时开启 PIPES_AS_CONCAT(不推荐依赖)。

易错点

  • 多数语言的 + 拼接在 SQL 里是加法:MySQL '1' + 1 得 2,PostgreSQL 直接报类型错误
  • 拼接可空列时忘了 COALESCE,整列结果会因一个 NULL 全部变 NULL

数据来源与参考

  • MySQL 8.0 Reference Manual · String Functions
  • PostgreSQL Documentation · String Functions and Operators
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌