SQL 串联多列的值,你想将多列的值合并为一列。例如,你想查询 EMP
表,并获得如下结果集。
SQL 串联多列的值 问题
你想将多列的值合并为一列。例如,你想查询 EMP
表,并获得如下结果集。
CLARK WORKS AS A MANAGER
KING WORKS AS A PRESIDENT
MILLER WORKS AS A CLERK
然而,你需要的数据来自 EMP
表的 ENAME
列和 JOB
列。
select ename, job
from emp
where deptno = 10
ENAME JOB
---------- ---------
CLARK MANAGER
KING PRESIDENT
MILLER CLERK
SQL 串联多列的值 解决方案
使用数据库中的内置函数来串联多列的值。
DB2、Oracle 和 PostgreSQL
这些数据库把双竖线作为串联运算符。
select ename||' WORKS AS A '||job as msg
from emp
where deptno=10
该数据库使用 CONCAT
函数。
select concat(ename, ' WORKS AS A ',job) as msg
from emp
where deptno=10
SQL Server
该数据库使用+
作为串联运算符。
select ename + ' WORKS AS A ' + job as msg
from emp
where deptno=10
SQL 串联多列的值 扩展知识
使用 CONCAT
函数可以串联多列的值。在 DB2
、Oracle
和 PostgreSQL
中,||
是 CONCAT
函数的快捷方式,在 SQL Server 中则为 +
。