• SQL查询系列之二:SQL查询中计算列

    发布:51Code 时间: 2017-11-07 09:41

  • 使用select查询选择列时,除可选择已有列,还可使用计算列,这些计算列可以使用常量,表达式,下面通过四个示例接合Oracle一些特性来演示这些功能。 示例1: 下面的 SQL 语句从 EMP 表...

  • 使用select查询选择列时,除可选择已有列,还可使用计算列,这些计算列可以使用常量,表达式,下面通过四个示例接合Oracle一些特性来演示这些功能。

        示例1: 下面的 SQL 语句从 "EMP" 表中选择部分列并增加一个常量列。

     SELECT empno AS 员工编号 ,ename AS 姓名, 'ORACLE' AS 公司 from emp ;

     输出结果为:

     员工编号 姓名       公司
            -------- ---------- ------
            7369 SMITH      ORACLE
            7499 ALLEN      ORACLE
            7521 WARD       ORACLE
            ……
           7934 MILLER     ORACLE
           14 rows selected

    上例语句中的'ORACLE' AS 公司 代表常量列。
     
       示例2: 下面的 SQL 语句从 “emp”表选取部分列并将”ename”和”job”用”||”串连成一个计算列:

    SELECT empno AS 员工编号 ,ename ||'-'||job "姓名-岗位" FROM emp ;
        员工编号 姓名-岗位

    输出结果为:

    -------- --------------------
            7369 SMITH-CLERK
            7499 ALLEN-SALESMAN
            7521 WARD-SALESMAN
            7566 JONES-MANAGER
            ……
            7934 MILLER-CLERK
           14 rows selected

    上例语句中的ename ||'-'||job "姓名-岗位" 就是一个包含连接符计算列表达式。
     
        示例3: 下面的 SQL 语句从 “emp”表选取部分列并将”sal”使用字符串函数的计算列:

     SELECT empno AS 员工编号 ,ename AS 姓名,to_char(sal,'L999,9') AS 工资 from emp;

    输出结果为:

        员工编号 姓名       工资
              -------- ---------- ----------------
              7369 SMITH                ¥80,0
              7499 ALLEN               ¥160,0
              7521 WARD                ¥125,0
              7566 JONES               ¥297,5
              7934 MILLER              ¥130,0
              14 rows selected

    上例语句中的to_char(sal,'L999,9') AS 工资就是包含函数表达式的计算列。
     
        示例4: 下面的 SQL 语句从 “emp”表选取部分列并将”JOB”转化成对应中文的计算列:

     SELECT empno,ename,
            case job
            when 'CLERK' then '办事员' 
            when 'SALESMAN' then '销售员' 
            when 'ANALYST' then '分析师'
            else '领导'
            end  AS JOB 
            FROM emp;

     输出结果为:

    EMPNO ENAME      JOB
           ----- ---------- ------
            7369 SMITH      办事员
            7499 ALLEN      销售员
            7521 WARD       销售员
            7566 JONES      领导
           ……
            7934 MILLER     办事员
           14 rows selected

    上例语句中的case end 语句就是包流程控制表达式的计算列。

  • 上一篇:SQL查询系列之一:SQL分页查询

    下一篇:SQL查询系列之三:SQL条件查询

网站导航
Copyright(C)51Code软件开发网 2003-2015 , 沪ICP备05003035号