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 语句返回所有价格不在 1020 之间的产品:

实例

SELECT * FROM Products
WHERE Price NOT BETWEEN 10 AND 20;

亲自试一试

BETWEEN 与 IN 结合

以下 SQL 语句选择价格在 1020 之间的所有产品。此外,CategoryID 必须是 123

实例

SELECT * FROM Products
WHERE Price BETWEEN 10 AND 20
AND CategoryID IN (1,2,3);

亲自试一试

BETWEEN 与文本值

以下 SQL 语句选择所有 ProductName 按字母顺序在 GeitostLouisiana 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