在SQL中,BETWEEN...AND是一种用于选取某个字段值在指定闭区间内的简洁写法。它常用于数值、日期和字符串类型的范围过滤,能够替代多个AND连接的比较条件,让语句更清晰。
一、BETWEEN...AND基本语法
标准语法形式如下,其中表达式通常是字段名,值1和值2为区间的起止点,且值1应小于等于值2:
SELECT 列名 FROM 表名 WHERE 字段名 BETWEEN 值1 AND 值2;
该语句等价于使用大于等于和小于等于的组合:
SELECT 列名 FROM 表名 WHERE 字段名 >= 值1 AND 字段名 <= 值2;
二、常见使用示例
1. 数值范围查询
查询价格介于10到50之间的商品:
SELECT product_name, price FROM products WHERE price BETWEEN 10 AND 50;
2. 日期范围查询
选取2023年1月1日到2023年12月31日之间的订单:
SELECT order_id, order_date FROM orders WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31';
3. 字符串范围查询
筛选姓名按字母顺序在Li和Zhang之间的用户:
SELECT user_name FROM users WHERE user_name BETWEEN 'Li' AND 'Zhang';
三、NOT BETWEEN的用法
若需要排除某个区间,可使用NOT BETWEEN,其效果等同于小于下界或大于上界:
SELECT product_name, price FROM products WHERE price NOT BETWEEN 10 AND 50;
四、注意事项
- BETWEEN...AND包含两端边界值,即闭区间。
- 值1必须小于或等于值2,否则不会报错但无结果返回。
- 对NULL值判断时,BETWEEN会返回未知,相关记录不会被选出。
- 不同数据库对字符串排序依赖字符集和校对规则,文本范围需注意实际顺序。
五、与比较运算符的对比
| 写法 | 是否含边界 | 可读性 |
|---|---|---|
| BETWEEN...AND | 包含 | 高 |
| >= AND <= | 包含 | 中 |
合理运用BETWEEN...AND可以让范围查询语句更直观,也能降低拼写多个比较条件带来的错误概率。
SQLBETWEEN_AND范围查询修改时间:2026-07-28 11:15:47