天天看點

如何使用Case進行簡單判斷

case具有兩種格式。簡單case函數和case搜尋函數。 

--簡單case函數

--case搜尋函數

這兩種方式,可以實作相同的功能。簡單case函數的寫法相對比較簡潔,但是和case搜尋函數相比,功能方面會有些限制,比如寫判斷式。 

還有一個需要注意的問題,case函數隻傳回第一個符合條件的值,剩下的case部分将會被自動忽略。

例子:

有一張表,裡面有3個字段:國文,數學,英語。其中有3條記錄分别表示國文70分,數學80分,英語58分,請用一條sql語句查詢出這三條記錄并按以下條件顯示出來(并寫出您的思路): 

大于或等于80表示優秀,大于或等于60表示及格,小于60分表示不及格。 

顯示格式: 

國文 數學 英語 

及格 優秀 不及格 

------------------------------------------

如何使用Case進行簡單判斷
如何使用Case進行簡單判斷

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

首先讓我們看一下 case 的文法。在一般的 select 中,其文法如下:

在上面的代碼中需要用具體的參數代替尖括号中的内容。下面是一個簡單的例子:

如何使用Case進行簡單判斷
如何使用Case進行簡單判斷

這是 case 的典型用法,但是使用 case 其實可以做更多的事情。比方說下面的 group by 子句中的 case:

如何使用Case進行簡單判斷
如何使用Case進行簡單判斷

你甚至還可以組合這些選項,添加一個 order by 子句,如下所示:

如何使用Case進行簡單判斷
如何使用Case進行簡單判斷

注意,為了在 group by 塊中使用 case,查詢語句需要在 group by 塊中重複 select 塊中的 case 塊。

除了選擇自定義字段之外,在很多情況下 case 都非常有用。再深入一步,你還可以得到你以前認為不可能得到的分組排序結果集。