【问题标题】:How to change GROUPING value from 0/1 to no/yes?如何将 GROUPING 值从 0/1 更改为 no/yes?
【发布时间】:2021-08-27 09:33:17
【问题描述】:

如何将Department ID UsedJob ID used 列的值从0/1 更改为no/yes

这是我的查询:

SELECT d.department_name "department name", e.job_id "job title",
       SUM(e.salary) "monthly cost",
       GROUPING(d.department_id) "Department ID Used" ,
       GROUPING(e.job_id) "Job ID Used"
  FROM employees e
  JOIN departments d
    ON e.department_id=d.department_id
 GROUP BY CUBE(d.department_name, d.department_id, e.job_id)
ORDER BY d.department_name, e.job_id

【问题讨论】:

    标签: sql oracle grouping


    【解决方案1】:

    只需替换

    DECODE(GROUPING(department_id),0,'no','yes')GROUPING(d.department_id)

    DECODE(GROUPING(e.job_id),0,'no','yes')GROUPING(e.job_id)

    【讨论】:

      【解决方案2】:

      您可以在 GROUPING BY 中添加 CASE WHEN 子句:

      CASE WHEN GROUPING(d.department_id) = 0 THEN 'NO' ELSE 'YES' END
      

      CASE 可用于 SQL 和 PLSQL
      DECODE 是特定于 Oracle 的,只能在 SQL 中使用。

      【讨论】:

        猜你喜欢
        • 2014-08-07
        • 1970-01-01
        • 2016-08-11
        • 1970-01-01
        • 2020-04-10
        • 1970-01-01
        • 2022-09-27
        • 2013-09-09
        • 2023-02-02
        相关资源
        最近更新 更多