91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQL中的Case語句怎么用

發布時間:2022-02-23 13:47:20 來源:億速云 閱讀:407 作者:小新 欄目:開發技術

這篇文章主要介紹了SQL中的Case語句怎么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

SQL Case 語句語法

語法中有很多東西,但它仍然相當直觀:關鍵字CASE表示 case 語句的開始,關鍵字END表示它的結束。

然后對于單個條件,您可以編寫關鍵字,WHEN后跟必須滿足的條件。之后是THEN該條件的關鍵字和值,例如WHEN <condition> THEN <stuff>.

然后可以跟其他WHEN/THEN語句。

最后,如果ELSE  關鍵字的所有條件都不為真,您可以添加一個默認使用的值,如下所示。

CASE
   WHEN condition1 THEN stuff
   WHEN condition2 THEN other stuff
   ...
   ELSE default stuff
END

讓我們把它付諸實踐以更好地理解它。

SQL Case 語句示例

讓我們CASE在示例中使用該語句。我們有一個表格,上面列出了學生及其考試成績。我們需要給每個學生打分,我們可以使用case語句自動完成。

ID姓名分數
1西米索拉60
2伊萬80
3梅托迪亞52
4卡勒姆98
5萊婭84
6阿帕雷西達82
7烏蘇拉69
8齋月78
9電暈87
10愛麗絲57
11凱蘭崔爾89
12梅雷爾99
13雪莉絲55
14尼提亞81
15埃爾薩德71
16利斯90
17約翰娜90
18安菲薩90
19涼介97
20沙猜61
21埃爾伯特63
22凱特琳51

我們可以使用該CASE語句給每個學生一個成績,我們將在名為 的新列中添加該成績grade。

讓我們先寫下CASE陳述,我們將在其中寫出每個年級的細目分類。當score為 94 或更高時,該行的值為A。如果分數為 90 或更高,則值為A-,依此類推。

  CASE
    WHEN score >= 94 THEN "A"
    WHEN score >= 90 THEN "A-"
    WHEN score >= 87 THEN "B+"
    WHEN score >= 83 THEN "B"
    WHEN score >= 80 THEN "B-"
    WHEN score >= 77 THEN "C+"
    WHEN score >= 73 THEN "C"
    WHEN score >= 70 THEN "C-"
    WHEN score >= 67 THEN "D+"
    WHEN score >= 60 THEN "D"
    ELSE "F"
  END

編寫CASE語句后,我們將把它添加到查詢中。然后我們將grade使用AS關鍵字為列命名:

SELECT *,
  CASE
    WHEN score >= 94 THEN "A"
    WHEN score >= 90 THEN "A-"
    WHEN score >= 87 THEN "B+"
    WHEN score >= 83 THEN "B"
    WHEN score >= 80 THEN "B-"
    WHEN score >= 77 THEN "C+"
    WHEN score >= 73 THEN "C"
    WHEN score >= 70 THEN "C-"
    WHEN score >= 67 THEN "D+"
    WHEN score >= 60 THEN "D"
    ELSE "F"
  END AS grade
FROM students_grades;

我們從這個查詢中得到的表格如下所示——現在每個學生都有一個基于他們的分數的成績。

ID姓名分數年級
1西米索拉60D
2伊萬80乙-
3梅托迪亞52F
4卡勒姆98一種
5萊婭84
6阿帕雷西達82乙-
7烏蘇拉69D+
8齋月78C+
9電暈87乙+
10愛麗絲57F
11凱蘭崔爾89乙+
12梅雷爾99一種
13雪莉絲55F
14尼提亞81乙-
15埃爾薩德71C-
16利斯90一種-
17約翰娜90一種-
18安菲薩90一種-
19涼介97一種
20沙猜61D
21埃爾伯特63D
22凱特琳51F

更復雜的 Case 語句示例

我們還可以根據需要使用除 case 語句之外的其他語句以不同方式操作表。

案例陳述示例 1

例如,我們可以使用ORDER BY對行進行排序以將最高分排在最前面。

SELECT name,
  CASE
    WHEN score >= 94 THEN "A"
    WHEN score >= 90 THEN "A-"
    WHEN score >= 87 THEN "B+"
    WHEN score >= 83 THEN "B"
    WHEN score >= 80 THEN "B-"
    WHEN score >= 77 THEN "C+"
    WHEN score >= 73 THEN "C"
    WHEN score >= 70 THEN "C-"
    WHEN score >= 67 THEN "D+"
    WHEN score >= 60 THEN "D"
    ELSE "F"
  END AS grade
FROM students_grades
ORDER BY score DESC;

我們根據score哪個是數字而不是grade列進行排序,因為字母順序與基于值的等級順序不同。我們使用DESC關鍵字以降序呈現它,最高值在頂部。

我們得到的表格如下所示:

姓名年級
梅雷爾一種
卡勒姆一種
涼介一種
利斯一種-
約翰娜一種-
安菲薩一種-
凱蘭崔爾乙+
電暈乙+
萊婭
阿帕雷西達乙-
尼提亞乙-
伊萬乙-
齋月C+
埃爾薩德C-
烏蘇拉D+
埃爾伯特D
沙猜D
西米索拉D
愛麗絲F
雪莉絲F
梅托迪亞F
凱特琳F

Case 語句示例 2

讓我們對這些數據做一些分析。我們可以使用GROUP BY并COUNT計算每個年級收到多少學生。

SELECT 
  CASE
    WHEN score >= 94
      THEN "A"
    WHEN score >= 90 THEN "A-"
    WHEN score >= 87 THEN "B+"
    WHEN score >= 83 THEN "B"
    WHEN score >= 80 THEN "B-"
    WHEN score >= 77 THEN "C+"
    WHEN score >= 73 THEN "C"
    WHEN score >= 70 THEN "C-"
    WHEN score >= 67 THEN "D+"
    WHEN score >= 60 THEN "D"
    ELSE "F"
  END AS grade,
  COUNT(*) AS number_of_students
FROM students_grades
GROUP BY grade
ORDER BY score DESC;

我們使用ORDER BY從高到低的順序對等級進行排序,我們使用score它是一個數值(因為按grade列排序將使用字母順序,這與按等級的值排序不同)。

年級NUMBER_OF_STUDENTS
一種3
一種-3
乙+2
1
乙-3
C+1
C-1
D+1
D3
F4

案例陳述示例 3

讓我們對這些數據做一些不同的分析。我們可以使用GROUP BYandCOUNT和一個不同的 case 語句來計算有多少學生通過了考試。然后我們可以使用ORDER BY我們喜歡的順序排列列,通過頂部的學生人數。

SELECT 
  CASE
    WHEN score >= 60
      THEN "passed"
    ELSE "failed"
  END AS result,
  COUNT(*) AS number_of_students
FROM students_grades
GROUP BY result
ORDER BY result DESC;

我們得到的表格如下所示。班級的表現還不錯,22 名學生中有 18 名學生通過了成績——但其他 4 名學生可能需要一些幫助。

結果NUMBER_OF_STUDENTS
通過18
失敗的4

感謝你能夠認真閱讀完這篇文章,希望小編分享的“SQL中的Case語句怎么用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁陕县| 皮山县| 东海县| 黔江区| 浪卡子县| 宁阳县| 金山区| 土默特左旗| 邳州市| 陈巴尔虎旗| 攀枝花市| 佛坪县| 茂名市| 台南市| 南召县| 象州县| 尖扎县| 个旧市| 沙田区| 崇信县| 辰溪县| 驻马店市| 宝丰县| 衡南县| 西平县| 临武县| 七台河市| 沛县| 甘泉县| 江阴市| 阿勒泰市| 安顺市| 苏尼特右旗| 临西县| 北海市| 辛集市| 青神县| 读书| 松溪县| 福泉市| 闻喜县|