翻譯|使用教程|編輯:鮑佳佳|2020-08-21 15:12:30.497|閱讀 483 次
概述:本文中我們將學習如何使用SQL CASE語句來選擇基于底層數據的值。 SQL語句的示例是在Navicat Premium中編寫的。 它通過自動完成代碼功能和自定義的代碼段來獲取關鍵字建議并從代碼中剝離重復,從而幫助你快速編寫代碼。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Navicat Premium是一個可連接多種數據庫的管理工具,它可以讓你以單一程序同時連接到MySQL、Oracle及PostgreSQL數據庫,讓管理不同類型的數據庫更加的方便。點擊獲取正版授權>>
CASE是一個控制流語句,其作用與IF-THEN-ELSE語句非常相似,可根據數據選擇值。 CASE語句遍歷條件并在滿足第一個條件時返回值。 因此,一旦條件成立,它將忽略后面的子句并返回結果。
基本語法CASE語句有兩種形式:第一種評估一個或多個條件,并返回第一個符合條件的結果。 如果沒有條件是符合的,則返回ELSE子句部分的結果,如果沒有ELSE部分,則返回NULL:
CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 WHEN conditionN THEN resultN ELSE result END;
第二種CASE句法返回第一個value = compare_value比較結果為真的結果。 如果沒有比較結果符合,則返回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
這是一個選擇電影標題以及它們的發行年份和租賃價格列表的查詢:
我們將添加一個列,將租賃價格分為三類:“discount”,“regular”和“premium”。 價格范圍是:
為了幫助使用CASE語句,Navicat提供了代碼段,你只需將其拖放到SQL編輯器中即可。 雖然你可以創建自己的語句,但Navicat附帶了許多標準SQL語句,包括DDL和流控制語句。 事實上,你將在流控制列表的頂部找到CASE語句:
將代碼段放入編輯器后,可編輯的部分會以不同顏色標記以便識別。 你可以使用Tab鍵從一個可編輯項移動到下一個。
由于這些語句本質上是通用的,因此你可能需要稍微做些修改來匹配你特定數據庫類型。 下圖是一個MySQL的完整CASE語句和查詢:
語法2
第二種CASE句法非常適合用于測試針對兩個或多個條件的離散值。 例如,我們可以使用它來基于電影評級添加目標觀眾列:
結論
在今天的文章中,我們學習了如何使用SQL CASE語句來選擇基于底層數據的值。 SQL語句的示例是在Navicat Premium中編寫的。 它通過自動完成代碼功能和自定義的代碼段來獲取關鍵字建議并從代碼中剝離重復,從而幫助你快速編寫代碼。 你可以通過點擊此處來下載并免費試用14天。
慧都作為Navicat Premium正版授權商,給你最低的價格和最優質的服務,現Navicat Premium直降500!點擊了解詳情。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: