BETWEEN AND

更新时间:
复制 MD 格式

Tests whether a value falls within a specified range. Returns the values of the field that meet the condition.

a BETWEEN b AND c is equivalent to a >= b AND a <= c. Both bounds are inclusive.

Syntax

<a> [NOT] BETWEEN <b> AND <c>

Parameters

Parameter Description
a Required. The field to test.
b Required. The lower bound of the range. Must be the same data type as a.
c Required. The upper bound of the range. Must be the same data type as a.

Return value

Returns the values of field a that fall in or fall out of the range between b and c:

  • When BETWEEN is used, rows where a is within the range [b, c] (inclusive) are returned.

  • When NOT BETWEEN is used, rows where a is outside the range are returned.

  • If a, b, or c is NULL, null is returned.

Example

The following example queries the emp table to find employees whose salary (sal) is between 1000 and 1500 (inclusive).

Sample data in the emp table:

empno,ename,job,mgr,hiredate,sal,comm,deptno
7369,SMITH,CLERK,7902,1980-12-17 00:00:00,800,,20
7499,ALLEN,SALESMAN,7698,1981-02-20 00:00:00,1600,300,30
7521,WARD,SALESMAN,7698,1981-02-22 00:00:00,1250,500,30
7566,JONES,MANAGER,7839,1981-04-02 00:00:00,2975,,20
7654,MARTIN,SALESMAN,7698,1981-09-28 00:00:00,1250,1400,30
7698,BLAKE,MANAGER,7839,1981-05-01 00:00:00,2850,,30
7782,CLARK,MANAGER,7839,1981-06-09 00:00:00,2450,,10
7788,SCOTT,ANALYST,7566,1987-04-19 00:00:00,3000,,20
7839,KING,PRESIDENT,,1981-11-17 00:00:00,5000,,10
7844,TURNER,SALESMAN,7698,1981-09-08 00:00:00,1500,0,30
7876,ADAMS,CLERK,7788,1987-05-23 00:00:00,1100,,20
7900,JAMES,CLERK,7698,1981-12-03 00:00:00,950,,30
7902,FORD,ANALYST,7566,1981-12-03 00:00:00,3000,,20
7934,MILLER,CLERK,7782,1982-01-23 00:00:00,1300,,10
7948,JACCKA,CLERK,7782,1981-04-12 00:00:00,5000,,10
7956,WELAN,CLERK,7649,1982-07-20 00:00:00,2450,,10
7956,TEBAGE,CLERK,7748,1982-12-30 00:00:00,1300,,10

Run the following query:

SELECT * FROM emp WHERE sal BETWEEN 1000 AND 1500;

Result:

+-------+--------+----------+------+---------------------+--------+--------+--------+
| empno | ename  | job      | mgr  | hiredate            | sal    | comm   | deptno |
+-------+--------+----------+------+---------------------+--------+--------+--------+
| 7521  | WARD   | SALESMAN | 7698 | 1981-02-22 00:00:00 | 1250.0 | 500.0  | 30     |
| 7654  | MARTIN | SALESMAN | 7698 | 1981-09-28 00:00:00 | 1250.0 | 1400.0 | 30     |
| 7844  | TURNER | SALESMAN | 7698 | 1981-09-08 00:00:00 | 1500.0 | 0.0    | 30     |
| 7876  | ADAMS  | CLERK    | 7788 | 1987-05-23 00:00:00 | 1100.0 | NULL   | 20     |
| 7934  | MILLER | CLERK    | 7782 | 1982-01-23 00:00:00 | 1300.0 | NULL   | 10     |
| 7956  | TEBAGE | CLERK    | 7748 | 1982-12-30 00:00:00 | 1300.0 | NULL   | 10     |
+-------+--------+----------+------+---------------------+--------+--------+--------+

The query returns rows where sal >= 1000 AND sal <= 1500.

Related functions

For other comparison and filtering functions, see Other functions.