在SQL中選擇範圍內的數據

介紹WHERE子句和BETWEEN條件

結構化查詢語言(SQL)為數據庫用戶提供了創建自定義查詢以從數據庫中提取信息的功能。 在前面的文章中,我們探討了使用SQL SELECT查詢從數據庫中提取信息 。 讓我們詳細討論這個討論,並探討如何執行高級查詢來檢索符合特定條件的數據。

讓我們考慮一個基於常用Northwind數據庫的示例,該數據庫經常隨數據庫產品一起提供,作為教程。

以下是數據庫產品表的摘錄:

產品表
產品ID 產品名稱 供應商ID 單位數量 單價 庫存量
1 1 10盒x 20袋 18.00 39
2 1 24 - 12盎司瓶 19.00 17
3 八角糖漿 1 12 - 550毫升的瓶子 10.00 13
4 廚師安東的Cajun調味料 2 48 - 6盎司罐子 22.00 53
廚師安東的濃湯混合 2 36盒 21.35 0
6 祖母的波森莓蔓延 3 12 - 8盎司罐子 25.00 120
7 伯伯叔叔的有機幹梨 3 12 - 1磅包裝。 30.00 15

簡單的邊界條件

我們將在查詢中放置的第一個限制涉及簡單的邊界條件。 我們可以在SELECT查詢的WHERE子句中使用由標準運算符(如<,>,> =和<=)構造的簡單條件語句指定它們。


首先,讓我們嘗試一個簡單的查詢,它允許我們提取數據庫中UnitPrice大於20.00的所有產品的列表:

SELECT ProductName,UnitPrice FROM Products Where UnitPrice> 20.00

這產生了四種產品的清單,如下所示:

ProductName單價------- --------廚師安東的濃湯混合21.35廚師安東的美國調味品22.00奶奶波森莓蔓延25.00叔叔Bob's有機幹梨30.00

我們也可以使用帶有字符串值的WHERE子句。 這基本上將字符等同於數字,其中A表示值1,Z表示值26.例如,我們可以使用以下查詢顯示名稱以U,V,W,X,Y或Z開頭的所有產品:

SELECT ProductName FROM products WHERE ProductName> ='T'

這產生了結果:

產品名稱------- Bob叔叔的有機幹梨

使用邊界表示範圍

WHERE子句還允許我們通過使用多個條件在值上實現範圍條件。 例如,如果我們想要採用上述查詢並將結果限制為價格介於15.00和20.00之間的產品,則可以使用以下查詢:

SELECT ProductName,UnitPrice FROM Products WHERE UnitPrice> 15.00 AND UnitPrice <20.00

這產生如下所示的結果:

ProductName單價------- -------- Chai 18.00 Chang 19.00

用BETWEEN表達範圍

SQL還提供了一種快捷方式BETWEEN語法,可以減少我們需要包含的條件數量並使查詢更具可讀性。 例如,不是使用上面的兩個WHERE條件,我們可以將相同的查詢表示為:

SELECT ProductName,UnitPrice FROM產品單價在15.00和20.00之間

與我們的其他條件子句一樣,BETWEEN也適用於字符串值。 如果我們想生成一個以V,W或X開頭的所有國家的列表,我們可以使用查詢:

SELECT ProductName FROM產品WHERE ProductName BETWEEN“A”和“D”

這產生了結果:

產品名稱-------八角糖漿Chai Chang廚師Anton's Gumbo Mix廚師Anton's Cajun調味料

WHERE子句是SQL語言的一個強大部分,它允許您將結果限制為落在指定範圍內的值。 它通常用於幫助表達業務邏輯,並應該成為每個數據庫專業人員工具箱的一部分。

將常用子句合併到存儲過程中以使其可以在沒有SQL知識的情況下訪問它們通常很有幫助。