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