您好,登錄后才能下訂單哦!
Navicat Premium是一個可連接多種數據庫的管理工具,它可以讓你以單一程序同時連接到MySQL、Oracle及PostgreSQL數據庫,讓管理不同類型的數據庫更加的方便。喜歡的朋友不妨下載試用版感受一下~
CASE是一個流控制語句,其作用與IF-THEN-ELSE語句非常相似,可根據數據選擇值CASE語句通過條件并在滿足第一個條件時返回一個值。因此,一旦條件成立,它就會短路,從而忽略后面的子句,并返回結果。正如我們在今天的文章中看到的那樣,它可以用來測試條件和離散值。
基本語法
CASE語句有兩種形式:第一種評估一個或多個條件,并返回第一個條件為true的結果。如果沒有條件為真,則返回ELSE后的結果,如果沒有ELSE部分,則返回NULL:
CASE ????WHEN?condition1?THEN?result1 ????WHEN?condition2?THEN?result2 ????WHEN?conditionN?THEN?resultN ????ELSE?result END;
第二個CASE語法返回第一個value = compare_value比較結果為true的結果。如果沒有比較為真,則返回ELSE后的結果,如果沒有ELSE部分,則返回NULL:
CASE?compare_value ????WHEN?condition1?THEN?result1 ????WHEN?condition2?THEN?result2 ????WHEN?conditionN?THEN?resultN ????ELSE?result END;
一些例子
要試用CASE語句,我們將使用Navicat Premium編寫一些針對Sakila示例數據庫的查詢。它是一個功能強大的數據庫開發和管理工具,可以同時連接到大多數流行的數據庫,包括MySQL、MariaDB、MongoDB、SQL Server、Oracle、PostgreSQL和SQLite數據庫。它還兼容許多云數據庫,如Amazon RDS、Amazon Aurora、Amazon Redshift、Microsoft Azure、Oracle Cloud、Google Cloud和MongoDB Atlas。
語法1
這是一個選擇電影標題列表的查詢,以及它們的發行年份和租賃價格:
我們將添加一個列,將租賃價格分為三類:“折扣”、“常規”和“溢價”。價格范圍是:
不到2.99美元
2.99美元到4.99美元之間
4.99美元以上
為了幫助使用CASE語句,Navicat提供了代碼片段,您只需將其拖放到SQL編輯器即可。雖然您可以創建自己的,但Navicat附帶了許多標準SQL語句,包括DDL和流控制語句。實際上,您將在流控制列表的頂部找到CASE語句:
將代碼段放入編輯器后,可編輯的部分采用顏色編碼以幫助識別它們。您可以使用Tab鍵從一個移動到下一個。
由于這些語句本質上是通用的,因此您可能需要稍微修改它以適合您的特定數據庫類型。這是MySQL的完整CASE語句和查詢:
語法2
第二種CASE語法非常適合針對兩個或多個條件測試離散值。例如,我們可以使用它根據電影評級添加目標受眾群列:
結論
在今天的文章中,我們學習了如何使用SQL CASE語句來選擇基于底層數據的值。示例SQL語句是用Navicat Premium編寫的。它通過獲取關鍵字的建議并從編碼中刪除重復,幫助您快速編寫代碼完成和可自定義的代碼片段。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。