SQL BETWEEN 运算符
SQL BETWEEN 运算符
BETWEEN 运算符在 WHERE 子句中使用,用于选择指定范围内的值。
该范围是包含性的 - 范围的开始值和结束值都包含在结果中。
这些值可以是数字、文本或日期。
语法
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2;
实例
选择价格在 10 到 20 之间的所有产品:
SELECT * FROM Products WHERE Price BETWEEN 10 AND 20;
演示数据库
以下是在实例中使用的 Products 表的片段:
| ProductID | ProductName | SupplierID | CategoryID | Unit | Price |
|---|---|---|---|---|---|
| 1 | Chais | 1 | 1 | 10 boxes x 20 bags | 18.00 |
| 2 | Chang | 1 | 1 | 24 - 12 oz bottles | 19.00 |
| 3 | Aniseed Syrup | 1 | 2 | 12 - 550 ml bottles | 10.00 |
| 4 | Chef Anton's Cajun Seasoning | 2 | 2 | 48 - 6 oz jars | 22.00 |
| 5 | Chef Anton's Gumbo Mix | 2 | 2 | 36 boxes | 21.35 |
NOT BETWEEN
NOT BETWEEN 运算符在 WHERE 子句中使用,用于选择指定范围之外的值。
以下 SQL 语句返回所有价格不在 10 到 20 之间的产品:
实例
SELECT * FROM Products WHERE Price NOT BETWEEN 10 AND 20;
BETWEEN 与 IN 结合
以下 SQL 语句选择价格在 10 到 20 之间的所有产品。此外,CategoryID 必须是 1、2 或 3:
实例
SELECT * FROM Products WHERE Price BETWEEN 10 AND 20 AND CategoryID IN (1,2,3);
BETWEEN 与文本值
以下 SQL 语句选择所有 ProductName 按字母顺序在 Geitost 和 Louisiana Hot Spiced Okra 之间的产品:
实例
SELECT * FROM Products WHERE ProductName BETWEEN 'Geitost' AND 'Louisiana Hot Spiced Okra' ORDER BY ProductName;
NOT BETWEEN 与文本值
以下 SQL 语句选择所有 ProductName 不在 'Geitost' 和 'Louisiana Hot Spiced Okra' 之间的产品:
实例
SELECT * FROM Products WHERE ProductName NOT BETWEEN 'Geitost' AND 'Louisiana Hot Spiced Okra' ORDER BY ProductName;
BETWEEN 与日期
BETWEEN 运算符对于筛选特定日期或时间段内的记录非常有用。确保日期格式与数据库匹配(例如 'YYYY-MM-DD')。
以下 SQL 语句选择所有在 1996 年 7 月下的订单:
实例
SELECT * FROM Orders WHERE OrderDate BETWEEN '1996-07-01' AND '1996-07-31';
样本表格
下面是例子中使用的 Orders 表的选择:
| OrderID | CustomerID | EmployeeID | OrderDate | ShipperID |
|---|---|---|---|---|
| 10248 | 90 | 5 | 1996-07-04 | 3 |
| 10249 | 81 | 6 | 1996-07-05 | 1 |
| 10250 | 34 | 4 | 1996-07-08 | 2 |
| 10251 | 84 | 3 | 1996-07-08 | 1 |
| 10252 | 76 | 4 | 1996-07-09 | 2 |