SQL Cookbook:一、检索记录(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

    这些数据库使用双竖线作为连接运算符。

select ename||' WORKS AS A '||job as msg
from emp
where deptno=10

    MySQL

    这个数据库支持CONTACT函数。

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

讨论

    使用CONTACT函数连接来自多个列的数值。在DB2, Oracle, 和PostgreSQL中,“||”是CONTACT函数的简写方式,“+”是SQL Server中的简写方式。

版权说明:作者:张颖希PocketZ's Blog
出处:http://www.cnblogs.com/PocketZ
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

本文翻译内容取自网络,纯粹是练习英文水平,如有雷同,纯属意外!有不妥之处,欢迎拍砖!

posted @ 2010-04-19 20:39  pocketz  阅读(390)  评论(0编辑  收藏  举报