问题
你想将多列的值作为一列返回。例如,你希望对 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 =10ENAME JOB ---------- ---------CLARK MANAGER KING PRESIDENT MILLER CLERK
解决方案
找到并使用 DBMS(数据库管理系统)内置的函数来拼接多列的值。
DB2、Oracle 和 PostgreSQL
这些数据库将双竖线用作拼接运算符。
select ename, job from emp where deptno =10ENAME JOB ---------- ---------CLARK MANAGER KING PRESIDENT MILLER CLERK
MySQL
该数据库支持函数 CONCAT。
select concat(ename,' WORKS AS A ',job)as msg from emp where deptno=10
总结
使用函数 CONCAT 可以拼接多列的值。在 DB2、Oracle 和 PostgreSQL 中,函数 CONCAT 的简写为 ||。