麻烦GROUP BY CASE [英] Trouble with GROUP BY CASE
本文介绍了麻烦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
$ c
当条件(2)满足时,我可以通过Department_Code,Course_Code进行分组吗?
case 表达式只能返回一个值,所以你需要两个 case $ c> $ 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屋!
查看全文