
上QQ阅读APP看书,第一时间看更新
1.7 拼接列值
问题
你想将多列的值作为一列返回。例如,你希望对
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
解决方案
找到并使用 DBMS(数据库管理系统)内置的函数来拼接多列的值。
DB2、Oracle 和 PostgreSQL
这些数据库将双竖线用作拼接运算符。
1 select ename||' WORKS AS A '||job as msg 2 from emp 3 where deptno=10
MySQL
该数据库支持函数
CONCAT
。1 select concat(ename, ' WORKS AS A ',job) as msg 2 from emp 3 where deptno=10
SQL Server
该数据库使用运算符
+
来执行拼接操作。1 select ename + ' WORKS AS A ' + job as msg 2 from emp 3 where deptno=10
讨论
使用函数
CONCAT
可以拼接多列的值。在 DB2、Oracle 和 PostgreSQL 中,函数CONCAT
的简写为||
,在 SQL Server 中为+
。