【问题标题】:Using DECODE to state the category of table values使用 DECODE 来说明表值的类别
【发布时间】:2016-04-14 07:21:03
【问题描述】:

任务

打印所有员工编号、姓名和薪水。使用薪水还可以根据以下标准打印类别:如果薪水低于 900,则为 LOW,如果薪水低于 1500,则为 MEDIUM,如果高于 1500,则为 HIGH。

尝试查询

select ename ,sal , decode ( sign (sal - 900) , -1 , 'Low' ,
1 ,'Medium'   ) from emp;

我的课程老师告诉我们使用 DECODE 函数编写查询。

Q)如何使用解码功能实现这一点

【问题讨论】:

  • 学校作业?向我们展示表定义、示例表数据、预期结果 - 以及您当前的查询尝试。
  • 解码?这是case的案例...
  • 我正在使用 oracle 的示例数据库(Emp、dept、salgrade)

标签: sql database oracle11g


【解决方案1】:

使用CASE WHEN:

SELECT empno, ename, sal,
    CASE WHEN sal < 900 THEN 'LOW'
         WHEN sal < 1500 THEN 'MEDIUM'
         ELSE 'HIGH'
    END AS category
FROM emp 

【讨论】:

    【解决方案2】:

    使用解码功能。

    select ename ,sal , decode ( sign (round((sal - 900)/600 - 0.5 )) , -1 , 'Low' ,
    1 ,'High' , 0 , 'Medium'  ) as "Salary Status"  from emp;
    

    【讨论】:

      猜你喜欢
      • 2011-04-17
      • 1970-01-01
      • 1970-01-01
      • 2012-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多