MySQL中Case When用法詳解

2021-08-21 07:34:54 字數 2704 閱讀 3530

最近,在學習hive基礎知識時,遇到了遇到了case when else end語法,以前學習mysql時忽略了這部分知識點,現總結一下相關的知識給大家。首先練習乙個例子如下:

一、學生課程成績統計

1)建表

use hivedemo;

create table `course` (

`id` int,

`sid` int ,

`course` string,

`score` int

) ;

2)插入資料

// 字段解釋:id, 學號, 課程, 成績

3)需求

求:所有數學課程成績 大於 語文課程成績的學生的學號

最開始的想法是打算同過自連線的方式來解決,後來諮詢了公司的同事,知道了可以case可以用來解決此問題。

a.使用case...when...將不同的課程名稱轉換成不同的列。

b.以sid分組合併取各成績最大值

create view tmp_course_view1 as

select aa.sid, max(aa.shuxue) as shuxue, max(aa.yuwen) as yuwen from tmp_course_view aa group by sid;

select * from tmp_course_view1;

c.比較結果

二、case when else end用法詳解

1)更新

update table  

set 欄位1=case

when 條件1 then 值1

when 條件2 then 值2

else 值3

end

where ……

2)查詢

select 欄位1, 欄位2,       

case 欄位3

when 值1 then 新值

when 值2 then 新值

end as 重新命名欄位3的名字

from table

where ……

order by ……

在一般的

select

中,其語法如下:

sql 中 case when 語法在這裡新增日誌標題 - 錢途無樑 - notebook of 錢途無樑select = 

sql 中 case when 語法在這裡新增日誌標題 - 錢途無樑 - notebook of 錢途無樑case

sql 中 case when 語法在這裡新增日誌標題 - 錢途無樑 - notebook of 錢途無樑when then sql 中 case when 語法在這裡新增日誌標題 - 錢途無樑 - notebook of 錢途無樑whenthen sql 中 case when 語法在這裡新增日誌標題 - 錢途無樑 - notebook of 錢途無樑else sql 中 case when 語法在這裡新增日誌標題 - 錢途無樑 - notebook of 錢途無樑end

case

可能是 sql 中被誤用最多的關鍵字之一。雖然你可能以前用過這個關鍵字來建立字段,但是它還具有更多用法。例如,你可以在 

where、group by和order by

子句中使用

case

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 這兩種方式,可以實現相同的...

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 這兩種方式,可以實現相同的...

mysql中case when的用法

設計資料庫的時候總會把使用者的性別用int儲存 0 為女,1 為男 但是怎麼把它抓換成漢子顯示呢?姓名 case when 0then 女 else 男 end as 性別 from test.student 最後的end要記得寫,查詢結果 按照使用者成績顯示優 90分以上 良 80分 90分 及格...