mysql中case when的用法

2021-10-07 13:36:52 字數 3236 閱讀 2300

設計資料庫的時候總會把使用者的性別用int儲存('0』為女,'1』為男),但是怎麼把它抓換成漢子顯示呢?

'姓名',(

case *** when

0then

'女'else

'男'end)as

'性別'

from test.student;

最後的end要記得寫,查詢結果

按照使用者成績顯示優(90分以上)、良(80分-90分)、及格(60分-80分)、不及格(60分一下)

'姓名',(

case

when score >

90then

'優'when score >=

80then

'良'when score >=

60then

'及格'

else

'不及格'

end)

as'等級'

from test.stu_score;

執行結果

表一

+

----------+---------+------+

| class_id | grade | rate |

+----------+---------+------+

| abc123 |

primary|70

%|| abc123 | middle |65%

|| abc123 | high |72%

|| hjkk86 |

primary|69

%|| hjkk86 | middle |63%

|| hjkk86 | high |74%

|+----------+---------+------+

表二

+

----------+---------+--------+------+

| class_id |

primary

| middle | high |

+----------+---------+--------+------+

| abc123 |70%

|65%|

72%|| hjkk86 |69%

|63%|

74%|+

----------+---------+--------+------+

將表一轉換成表二顯示

第一步 其中三條case when 語句是同步執行的

select class_id,

(case

when grade =

'primary'

then rate else

0end)as

'primary',(

case

when grade =

'middle'

then rate else

0end)as

'middle',(

case

when grade =

'high'

then rate else

0end)as

'high'

from mst_class;

+----------+---------+--------+------+

| class_id |

primary

| middle | high |

+----------+---------+--------+------+

| abc123 |70%

|0|0

|| abc123 |0|

65%|0

|| abc123 |0|

0|72%

|| hjkk86 |69%

|0|0

|| hjkk86 |0|

63%|0

|| hjkk86 |0|

0|74%

|+----------+---------+--------+------+

第二步 按class_id分組,求最大值(即去掉0)

select class_id,

max(

case

when grade =

'primary'

then rate else

0end)as

'primary'

,max

(case

when grade =

'middle'

then rate else

0end)as

'middle'

,max

(case

when grade =

'high'

then rate else

0end)as

'high'

from mst_class

group

by class_id;

+----------+---------+--------+------+

| class_id |

primary

| middle | high |

+----------+---------+--------+------+

| abc123 |70%

|65%|

72%|| hjkk86 |69%

|63%|

74%|+

----------+---------+--------+------+

以上就是case when 的三種使用場景

MySQL中Case When用法詳解

最近,在學習hive基礎知識時,遇到了遇到了case when else end語法,以前學習mysql時忽略了這部分知識點,現總結一下相關的知識給大家。首先練習乙個例子如下 一 學生課程成績統計 1 建表 use hivedemo create table course id int,sid in...

SQLServer 中Case When的用法

case具有兩種格式。簡單case函式和case搜尋函式。簡單case函式 case when 1 then 男 when 2 then 女 else 其他 end case搜尋函式 case when 1 then 男 when 2 then 女 else 其他 end 這兩種方式,可以實現相同的...

SQL中case when的用法

一.單個case when用法 首先,新建乙個表 create table battle riqi date,result varchar 10 插入資料 insert all into battle values to date 2005 05 09 yyyy mm dd win into bat...