如何解决有没有办法在 MySQL CASE 语句中对案例进行分组?
是否有像在 PHP switch 中那样编写 MysqL CASE 语句的简短形式?例如,如果我有:
SELECT
CASE Type
WHEN 1 THEN "A"
WHEN 5 THEN "B"
WHEN 10 THEN "B"
WHEN 20 THEN "B"
WHEN 30 THEN "B"
WHEN 300 THEN "C"
ELSE "-"
END TypeDesc
在PHP语法中我们可以简单地写:
switch ($Type) {
case 1: $TypeDesc = 'A'; break;
case 5:
case 10:
case 20:
case 30: $TypeDesc = 'B'; break;
case 300: $TypeDesc = 'C'; break;
default: $TypeDesc = '-'; }
我试过了:
WHEN 5 OR 10 OR 20 OR 30 THEN "B"
和
WHEN IN(5,10,20,30) THEN "B"
还有这两个:
WHEN 5
WHEN 10
WHEN 20
WHEN 30 THEN "B"
WHEN 5 THEN
WHEN 10 THEN
WHEN 20 THEN
WHEN 30 THEN "B"
但是我得到了不正确的结果或错误!
解决方法
使用
case when <condition>
代替
case <variable> when <value>
喜欢这个
SELECT
CASE WHEN Type = 1 THEN "A"
WHEN Type < 300 THEN "B"
WHEN Type = 300 THEN "C"
ELSE "-"
END TypeDesc
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。