SQL BETWEEN操作符几乎与顺序使用的SQL IN操作符一样。
SQL BETWEEN 和 IN 操作符
SQL BETWEEN操作符与WHERE子句一起使用,用于提供值的范围。这些值可以是数字,文本值,和日期。BETWEEN操作符是包容性的:开始和结束的值都包括在内。
SQL between 操作符 用于选择指定范围内的值。 这些值可以是文本、日期、数字,或其他用于选择、更新、插入或删除语句的SQL数据类型 。
只有在语句中指定的值范围内存在任何值时,才会返回记录。 操作符之间的SQL是包容性的,也就是说,起点和终点的值都包括在内。
定义为BETWEEN范围的一部分的值是包容的。例如,范围中提到的值和起点和终点的值都包括在内。
语法
Select column(s) from table_name
where column_name between value1 and value2.
参数
- Column(s) 是你要打印的列的名称。
- Table_name是表的名称。
- Where column_name用于对column_name施加条件。
- Between是运算符,用于检查该范围内的值。
- Value1和Value2是起始和结束值。
让我们从这个例子开始:
表_1:雇员
| Emp_id | 雇员姓名 | 城市 | 州 | 工资 |
| 101 | 罗赫特 | 巴特那 | 比哈尔邦 | 30000 |
| 201 | 希瓦姆 | Jalandhar | 旁遮普省 | 20000 |
| 301 | 卡兰 | 安拉阿巴德 | 北方邦 | 40000 |
| 401 | 苏拉杰 | 加尔各答 | 西孟加拉邦 | 60000 |
| 501 | 阿卡什 | 维扎格 | 安得拉邦 | 70000 |
查询:(数值之间)
Select * from employee
where salary between 20000 and 50000;
请看下面的图片:
解释说明
上面的查询显示了一个工资在20000到50000之间的雇员的记录。
查询:(不在数值之间)
Select * from employee
where salary NOT BETWEEN 20000 and 50000;
请看下面的输出:
解释
上面的查询显示了一个工资不在20000和50000之间的雇员的记录。
查询:(在文本值之间)
select * from employee
where city between 'Allahabad' and 'Patna' order by city;
请看下面的输出:
解释
上面的查询显示了一个雇员的记录,这个雇员的城市不在查询中提到的范围内。这个范围是用ASCII值来衡量的。
SQL BETWEEN日期示例
让我们看看下面的例子:
SELECT * FROM Orders
WHERE OrderDate BETWEEN #10/09/1993# AND #25/06/2019#;
上述查询的输出结果将是数百万条记录,因为它将获取这些日期之间的记录,包括这些日期。
SQL IN 操作符
SQL IN操作 符是一个逻辑操作符,用于检查特定的值是否存在于声明的集合中。
IN操作符也用于消除SELECT, INSERT, UPDATE, 或DELETE语句中多个OR条件的需要。NOT IN可以用来从集合中排除行。
语法
Select column(s) from table_name
where column_name IN(Value_sets);
参数
- Column(s) 是你想打印的列的名称。
- Table_name是表的名称。
- 其中column_name用于对column_name施加条件。
- IN是用来检查值是否存在于该值组中的操作符。
- Value1和Value2是起始和结束值。
让我们从这个例子开始:
表_1:雇员
| Emp_id | 雇员姓名 | 城市 | 州 | 工资 |
| 101 | 罗赫特 | 巴特那 | 比哈尔邦 | 30000 |
| 201 | 希瓦姆 | Jalandhar | 旁遮普省 | 20000 |
| 301 | 卡兰 | 安拉阿巴德 | 北方邦 | 40000 |
| 401 | 苏拉杰 | 加尔各答 | 西孟加拉邦 | 60000 |
| 501 | 阿卡什 | 维扎格 | 安得拉邦 | 70000 |
查询:(在数字值中)
select * from employee
where salary IN(20000,30000,40000);
输出
解释
这个查询显示了工资为20000,30000,或40000的记录。
查询:(不包含数字值)
select * from employee
where salary NOT IN(20000,30000,40000);
输出
query: (在文本值中)
select * from employee
where city IN('Kolkata', 'Vizag');
输出
解释
上面的查询显示了一个城市在KOLKATA和VIZAG的雇员的记录。
query: (非文本值)
select * from employee
where city NOT IN('Kolkata', 'Vizag');
输出
解释
上面的查询显示了一个城市不在KOLKATA和VIZAG的雇员的记录。
sql between and in 操作符
在这里,BETWEEN和IN运算符都可以用来生成结果集。
表_1:雇员
| Emp_id | 雇员名称 | 城市 | 州 | 工资 |
| 101 | 罗赫特 | 巴特那 | 比哈尔邦 | 30000 |
| 201 | 希瓦姆 | Jalandhar | 旁遮普省 | 20000 |
| 301 | 卡兰 | 安拉阿巴德 | 北方邦 | 40000 |
| 401 | 苏拉杰 | 加尔各答 | 西孟加拉邦 | 60000 |
| 501 | 阿卡什 | 维扎格 | 安得拉邦 | 70000 |
查询
Select * from employee
where emp_id between 201 and 501 and salary IN(40000,50000,60000);
输出
解释
在这个查询中,显示了一个雇员的详细信息,其ID在201和501的范围内,其工资也在value_sets中,即40000,50000和60000。
本教程到此为止。







