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 字符集的字符,需要使用其他操作符。