翻譯|使用教程|編輯:莫成敏|2019-09-10 10:04:40.750|閱讀 1025 次
概述:CASE是一個(gè)流控制語(yǔ)句,其作用與IF-THEN-ELSE語(yǔ)句非常相似,可根據(jù)數(shù)據(jù)選擇值CASE語(yǔ)句通過(guò)條件并在滿足第一個(gè)條件時(shí)返回一個(gè)值。因此,一旦條件成立,它就會(huì)短路,從而忽略后面的子句,并返回結(jié)果。正如我們?cè)诮裉斓奈恼轮锌吹降?那樣,它可以用來(lái)測(cè)試條件和離散值。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
Navicat Premium是一個(gè)可連接多種數(shù)據(jù)庫(kù)的管理工具,它可以讓你以單一程序同時(shí)連接到MySQL、Oracle及PostgreSQL數(shù)據(jù)庫(kù),讓管理不同類型的數(shù)據(jù)庫(kù)更加的方便。喜歡的朋友不妨下載試用版感受一下~
CASE是一個(gè)流控制語(yǔ)句,其作用與IF-THEN-ELSE語(yǔ)句非常相似,可根據(jù)數(shù)據(jù)選擇值CASE語(yǔ)句通過(guò)條件并在滿足第一個(gè)條件時(shí)返回一個(gè)值。因此,一旦條件成立,它就會(huì)短路,從而忽略后面的子句,并返回結(jié)果。正如我們?cè)诮裉斓奈恼轮锌吹降哪菢樱梢杂脕?lái)測(cè)試條件和離散值。
基本語(yǔ)法
CASE語(yǔ)句有兩種形式:第一種評(píng)估一個(gè)或多個(gè)條件,并返回第一個(gè)條件為true的結(jié)果。如果沒有條件為真,則返回ELSE后的結(jié)果,如果沒有ELSE部分,則返回NULL:
CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 WHEN conditionN THEN resultN ELSE result END;
第二個(gè)CASE語(yǔ)法返回第一個(gè)value = compare_value比較結(jié)果為true的結(jié)果。如果沒有比較為真,則返回ELSE后的結(jié)果,如果沒有ELSE部分,則返回NULL:
CASE compare_value WHEN condition1 THEN result1 WHEN condition2 THEN result2 WHEN conditionN THEN resultN ELSE result END;
一些例子
要試用CASE語(yǔ)句,我們將使用Navicat Premium編寫一些針對(duì)Sakila示例數(shù)據(jù)庫(kù)的查詢。它是一個(gè)功能強(qiáng)大的數(shù)據(jù)庫(kù)開發(fā)和管理工具,可以同時(shí)連接到大多數(shù)流行的數(shù)據(jù)庫(kù),包括MySQL、MariaDB、MongoDB、SQL Server、Oracle、PostgreSQL和SQLite數(shù)據(jù)庫(kù)。它還兼容許多云數(shù)據(jù)庫(kù),如Amazon RDS、Amazon Aurora、Amazon Redshift、Microsoft Azure、Oracle Cloud、Google Cloud和MongoDB Atlas。
語(yǔ)法1
這是一個(gè)選擇電影標(biāo)題列表的查詢,以及它們的發(fā)行年份和租賃價(jià)格:
我們將添加一個(gè)列,將租賃價(jià)格分為三類:“折扣”、“常規(guī)”和“溢價(jià)”。價(jià)格范圍是:
不到2.99美元
2.99美元到4.99美元之間
4.99美元以上
為了幫助使用CASE語(yǔ)句,Navicat提供了代碼片段,您只需將其拖放到SQL編輯器即可。雖然您可以創(chuàng)建自己的,但Navicat附帶了許多標(biāo)準(zhǔn)SQL語(yǔ)句,包括DDL和流控制語(yǔ)句。實(shí)際上,您將在流控制列表的頂部找到CASE語(yǔ)句:
將代碼段放入編輯器后,可編輯的部分采用顏色編碼以幫助識(shí)別它們。您可以使用Tab鍵從一個(gè)移動(dòng)到下一個(gè)。
由于這些語(yǔ)句本質(zhì)上是通用的,因此您可能需要稍微修改它以適合您的特定數(shù)據(jù)庫(kù)類型。這是MySQL的完整CASE語(yǔ)句和查詢:
語(yǔ)法2
第二種CASE語(yǔ)法非常適合針對(duì)兩個(gè)或多個(gè)條件測(cè)試離散值。例如,我們可以使用它根據(jù)電影評(píng)級(jí)添加目標(biāo)受眾群列:
結(jié)論
在今天的文章中,我們學(xué)習(xí)了如何使用SQL CASE語(yǔ)句來(lái)選擇基于底層數(shù)據(jù)的值。示例SQL語(yǔ)句是用Navicat Premium編寫的。它通過(guò)獲取關(guān)鍵字的建議并從編碼中刪除重復(fù),幫助您快速編寫代碼完成和可自定義的代碼片段。
金喜正規(guī)買球相關(guān)的文章:
Navicat使用教程:使用MySQL 8中的觸發(fā)器驗(yàn)證數(shù)據(jù)
Navicat使用教程:從單個(gè)工具連接到多個(gè)數(shù)據(jù)庫(kù)
Navicat使用教程:從單個(gè)應(yīng)用程序管理多個(gè)數(shù)據(jù)庫(kù)
Navicat使用教程:如何跨多個(gè)數(shù)據(jù)庫(kù)查詢
想要購(gòu)買Navicat Premium正版授權(quán),或了解更多產(chǎn)品信息請(qǐng)點(diǎn)擊
掃描關(guān)注慧聚IT微信公眾號(hào),及時(shí)獲取最新動(dòng)態(tài)及最新資訊
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn