答案:使用CONCAT函数或||操作符可合并列值,需注意NULL处理及数据库语法差异。

在 SQL 中,可以使用字符串连接函数将多个列的值合并成一个字符串。不同数据库系统有不同的连接方式,下面介绍几种常见数据库的实现方法。
使用 CONCAT 函数
CONCAT 是最常用的字符串连接函数,支持多数数据库(如 MySQL、SQL Server、PostgreSQL 等)。
基本语法:CONCAT(col1, col2, col3, ...)
示例:假设有一个员工表 employees,包含 first_name 和 last_name 两列,想生成全名:
SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM employees;
结果会把名字和姓氏用空格连接起来。
使用 || 操作符(适用于 PostgreSQL、SQLite、Oracle)
某些数据库支持使用 || 作为字符串连接操作符。
示例:SELECT first_name || ' ' || last_name AS full_name FROM employees;
这种方式写起来简洁,尤其适合链式拼接。
处理 NULL 值
当参与连接的列中可能包含 NULL 时,整个结果可能变成 NULL(在某些数据库中)。为了避免这个问题,应使用 COALESCE 或 ISNULL/IFNULL 处理空值。
MySQL 示例:SELECT CONCAT(IFNULL(first_name, ''), ' ', IFNULL(last_name, '')) AS full_name FROM employees;
通用方法(推荐):SELECT CONCAT(COALESCE(first_name, ''), ' ', COALESCE(last_name, '')) AS full_name FROM employees;
添加分隔符或静态文本
你可以在连接时加入固定内容,比如括号、逗号等。
示例:SELECT CONCAT('Name: ', first_name, ' ', last_name, ' (Dept: ', department, ')') AS info FROM employees;
这样可以生成带标签的输出信息。
基本上就这些常用方式。根据你使用的数据库选择合适的方法即可。注意语法差异和 NULL 值处理,避免结果不符合预期。










