SQLPathLab
基础查询 · 基础

BETWEEN

筛选某个区间内的数据

简介

BETWEEN 用于表达包含两端的闭区间,相当于同时写 >= 下界和 <= 上界。它适合金额、编号和完整日期的范围筛选;处理带时间的字段时,月底 23:59:59 并不是可靠上界,通常应改用“>= 起点且 < 下一周期起点”的半开区间。上下界顺序写反不会自动交换。

基础语法

SELECT * FROM orders WHERE amount BETWEEN 500 AND 1500;

示例

BETWEEN 示例

筛选金额在 500 到 1500 之间的订单,并验证 500 和 1500 两个边界值都属于范围。

示例数据表

表名:orders
orders
idcustomer_idproduct_idnamedepartmentamountstatuscreated_atdiscount
1 101 201 Alice Sales 1200 paid 2026-01-03 0
2 102 202 Bob IT 900 pending 2026-01-08 50
3 101 201 Cindy Sales 1500 paid 2026-02-02 100
4 104 203 David HR 700 cancelled 2026-02-15 0

运行结果

result
idcustomer_idproduct_idnamedepartmentamountstatuscreated_atdiscount
1 101 201 Alice Sales 1200 paid 2026-01-03 0
2 102 202 Bob IT 900 pending 2026-01-08 50
3 101 201 Cindy Sales 1500 paid 2026-02-02 100
4 104 203 David HR 700 cancelled 2026-02-15 0

常见问题

边界值会不会被包含?

先确认运算符语义;BETWEEN 包含两端,而大于和小于是否带等号会直接改变结果。

AND 与 OR 混用怎样避免误判?

用括号明确业务分组,不要依赖读者记忆运算符优先级。

遇到 NULL 为什么条件没有命中?

NULL 表示未知,比较结果可能不是 TRUE;应使用 IS NULL 或明确的空值处理。

标签

常用过滤数据

这篇内容是否清楚?