SQL BETWEEN 操作符
SQL BETWEEN 操作符
SQL BETWEEN 操作符可以用于查询一个范围内的数据,它的语法如下:
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
BETWEEN 操作符选择在指定的值范围内的数据,包括指定值本身。value1 和 value2 参数可以是数字、日期或文本。查询结果将返回列值在此范围内的行。
下面是一些实际的例子:
例1:查询 salary 在 20000 和 30000 之间的员工
SELECT *
FROM employees
WHERE salary BETWEEN 20000 AND 30000;
例2:查询注册时间在指定时间段内的客户
SELECT *
FROM customers
WHERE reg_date BETWEEN '2019-01-01' AND '2021-01-01';
例3:查询订单状态是 shipping 或者 delivered 的订单
SELECT *
FROM orders
WHERE order_status BETWEEN 'shipping' AND 'delivered';
需要注意的是,BETWEEN 操作符会在查询时包含范围的两端。如果您希望查询范围不包括两端,则可以使用 > 或 < 操作符,例如:
SELECT *
FROM employees
WHERE salary > 20000 AND salary < 30000;
不适合使用 BETWEEN 操作符的情况
BETWEEN 操作符适用于数字、日期和文本类型,但并不适用于所有的情况。例如,它不能用于查询 NULL 值,也不能用于查询非 ASCII 字符集的字符。
如果您需要使用 BETWEEN 操作符查询 NULL 值,可以使用 IS NULL 或 IS NOT NULL 操作符。例如:
SELECT *
FROM employees
WHERE commission_pct IS NULL;
如果您需要查询非 ASCII 字符集的字符,可以使用 LIKE 操作符或全文索引。例如:
SELECT *
FROM products
WHERE product_name LIKE '%éclair%';
结论
BETWEEN 操作符是 SQL 中一个非常有用和常见的操作符,可以简化查询范围内的数据。需要注意的是,操作符包括范围的两端。如果您需要查询范围不包括两端,则可以使用 > 或 < 操作符。另外,BETWEEN 操作符不适用于所有情况,例如查询 NULL 值或非 ASCII 字符集的字符,需要使用其他操作符。