麻烦GROUP BY CASE [英] Trouble with GROUP BY CASE

查看:119
本文介绍了麻烦GROUP BY CASE的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

由于(Department_Code,Course_Code)行,以下查询给出错误#1241 - 操作数应包含1列。当我用(Course_Code)代替它时,它可以工作。然而,这不是我想要的

  SELECT * FROM类
GROUP BY CASE
WHEN(1) THEN
Department_Code
ELSE CASE WHEN(2)THEN
(Department_Code,Course_Code)
ELSE Class_ID
END
END

当条件(2)满足时,我可以通过Department_Code,Course_Code进行分组吗?

case 表达式只能返回一个值,所以你需要两个 case $ c>表达式。此外,对每个表达式都使用一个 case 表达式,而不是将两个表达式嵌套在一起:

  SELECT * FROM类
GROUP BY
CASE
当(1)THEN
Department_Code
当(2)THEN
Department_Code
ELSE
Class_ID
END,
CASE
当(2)THEN
Course_Code
ELSE
1
END


The following query gives the error "#1241 - Operand should contain 1 column(s)" because of the (Department_Code, Course_Code) line. When I replace that with just (Course_Code) it works. However, that's not what I want

SELECT * FROM Classes
GROUP BY CASE 
WHEN (1) THEN
 Department_Code
 ELSE CASE WHEN (2) THEN 
  (Department_Code, Course_Code)
 ELSE Class_ID
 END
END

How can I group by Department_Code, Course_Code when condition (2) is satisfied?

解决方案

A case expression can only return a single value, so you need two case expressions. Also, use a single case expression for each instead of nesting two inside each other:

SELECT * FROM Classes
GROUP BY
  CASE 
  WHEN (1) THEN
    Department_Code
  WHEN (2) THEN 
    Department_Code
  ELSE
    Class_ID
  END,
  CASE 
  WHEN (2) THEN 
    Course_Code
  ELSE
    1
  END

这篇关于麻烦GROUP BY CASE的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆