mysql中case使用

Posted kacha886

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql中case使用相关的知识,希望对你有一定的参考价值。

前言:遇到这样一个需求,有一门成绩,成绩中只记录了学生的分数,现在需要统计学生的分数等级,100-90分为优秀,90-60分为及格,60-0分为不及格。这个需求就可以用CASE语句来表达。

case语句分为简单case语句和可搜索case语句。

1.简单case的语法为

CASE  case_expression
   WHEN when_expression_1 THEN commands
   WHEN when_expression_2 THEN commands
   ...
   ELSE commands
END

这种适合固定的值,比如性别,1男,2女这种

例子:将下图中sex换成汉字的性别,1男,2女。

SELECT
	*, (
		CASE sex
		WHEN 1 THEN
			\'男\'
		WHEN 2 THEN
			\'女\'
		END
	) \'性别\'
FROM
	`user`

结果如下图

2.可搜索case语句,这种适应表达式与一组不同的值进行匹配。

语法为

CASE
    WHEN condition_1 THEN commands
    WHEN condition_2 THEN commands
    ...
    ELSE commands
END

例子就是最开始提到的

SELECT
	*,
	(
		CASE 
		WHEN  score>=90 THEN
			\'优秀\'
		WHEN score>=60 THEN
			\'及格\'
		ELSE
			\'不及格\'
		END
	) \'等级\'
FROM
	math
ORDER BY score DESC

结果如下

以上是关于mysql中case使用的主要内容,如果未能解决你的问题,请参考以下文章

在这个 spark 代码片段中 ordering.by 是啥意思?

根据字符串名称而不是列表视图项位置替换片段并启动活动

mysql中的case when 与if else

使用 json rereiver php mysql 在片段中填充列表视图

由于表名'CASE'导致MySQL查询中的问题

需要对特定 R 代码片段的解释