sql語句判斷方法之一
Case具備兩種格式。簡單Case函數和Case搜索函數。
--簡單Case函數
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其餘' END
--Case搜索函數
CASE WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE '其餘' END
這兩種方式,能夠實現相同的功能。簡單Case函數的寫法相對比較簡潔,可是和Case搜索函數相比,功能方面會有些限制,好比寫判斷式。
還有一個須要注意的問題,Case函數只返回第一個符合條件的值,剩下的Case部分將會被自動忽略。
例子:
有一張表,裏面有3個字段:語文,數學,英語。其中有3條記錄分別表示語文70分,數學80分,英語58分,請用一條sql語句查詢出這三條記錄並按如下條件顯示出來(並寫出您的思路):
大於或等於80表示優秀,大於或等於60表示及格,小於60分表示不及格。
顯示格式:
語文 數學 英語
及格 優秀 不及格
------------------------------------------
select
(case when 語文>=80 then '優秀'
when 語文>=60 then '及格'
else '不及格') as 語文,
(case when 數學>=80 then '優秀'
when 數學>=60 then '及格'
else '不及格') as 數學,
(case when 英語>=80 then '優秀'
when 英語>=60 then '及格'
else '不及格') as 英語,
from table
CASE 多是 SQL 中被誤用最多的關鍵字之一。雖然你可能之前用過這個關鍵字來建立字段,可是它還具備更多用法。例如,你能夠在 WHERE 子句中使用 CASE。orm
首先讓咱們看一下 CASE 的語法。在通常的 SELECT 中,其語法以下:排序
SELECT =
在上面的代碼中須要用具體的參數代替尖括號中的內容。下面是一個簡單的例子:it
USE pubs
這是 CASE 的典型用法,可是使用 CASE 其實能夠作更多的事情。比方說下面的 GROUP BY 子句中的 CASE:table
SELECT 'Number of Titles', Count(*)
你甚至還能夠組合這些選項,添加一個 ORDER BY 子句,以下所示:
USE pubs