You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将SQL中GROUPING函数返回的0/1值修改为no/yes显示

解决方案

你可以通过标准SQL的CASE表达式对GROUPING函数的返回值做映射转换,即可实现0/1转no/yes的展示需求,改动方式如下:

  • 映射规则:GROUPING返回0表示对应列被用作当前行的分组维度,和列名xxx Used的语义匹配时对应yes;返回1表示对应列未参与本次分组,对应no,如果你的业务逻辑需要反向映射,直接调换CASE表达式里的两个取值即可
  • 仅需要修改原查询中两个GROUPING相关字段的输出逻辑,其余部分无需调整

修改后的完整查询语句:

SELECT d.department_name "department name", e.job_id "job title",
       SUM(e.salary) "monthly cost",
       CASE GROUPING(d.department_id) WHEN 0 THEN 'yes' WHEN 1 THEN 'no' END "Department ID Used",
       CASE GROUPING(e.job_id) WHEN 0 THEN 'yes' WHEN 1 THEN 'no' END "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

如果你使用的数据库(如Oracle、MySQL 8.0+、PostgreSQL等)支持IIF简化函数,也可以用更短的写法替换CASE部分:

IIF(GROUPING(d.department_id) = 0, 'yes', 'no') "Department ID Used",
IIF(GROUPING(e.job_id) = 0, 'yes', 'no') "Job ID Used"

内容的提问来源于stack exchange,提问作者Rizal Maulana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 11:57:01