1. 程式人生 > >mysql中case使用

mysql中case使用

例子 分數 src 圖片 前言 alt sql image IT

前言:遇到這樣一個需求,有一門成績,成績中只記錄了學生的分數,現在需要統計學生的分數等級,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使用