SQL BETWEEN操作符的完整指南

106 阅读5分钟

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.

参数

  1. Column(s) 是你要打印的列的名称。
  2. Table_name是的名称。
  3. Where column_name用于对column_name施加条件。
  4. Between是运算符,用于检查该范围内的值。
  5. 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;

请看下面的图片:

SQL BETWEEN

解释说明

上面的查询显示了一个工资在20000到50000之间的雇员的记录。

查询:(不在数值之间)

Select * from employee 
where salary NOT BETWEEN 20000 and 50000;

请看下面的输出:

NOT BETWEEN NUMERIC VALUES

解释

上面的查询显示了一个工资不在20000和50000之间的雇员的记录。

查询:(在文本值之间)

select * from employee 
where city between 'Allahabad' and 'Patna' order by city;

请看下面的输出:

BETWEEN TEXT VALUES

解释

上面的查询显示了一个雇员的记录,这个雇员的城市不在查询中提到的范围内。这个范围是用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);

参数

  1. Column(s) 是你想打印的列的名称。
  2. Table_name是表的名称。
  3. 其中column_name用于对column_name施加条件。
  4. IN是用来检查值是否存在于该值组中的操作符。
  5. 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);

输出

IN FOR NUMERIC VALUES

解释

这个查询显示了工资为20000,30000,或40000的记录。

查询:(不包含数字值)

select * from employee 
where salary NOT IN(20000,30000,40000);

输出

NOT IN FOR NUMERIC VALUES

query: (在文本值中)

select * from employee 
where city  IN('Kolkata', 'Vizag');

输出

SQL IN Operator

解释

上面的查询显示了一个城市在KOLKATA和VIZAG的雇员的记录。

query: (非文本值)

select * from employee 
where city NOT IN('Kolkata', 'Vizag');

输出

NOT IN TEXT VALUES

解释

上面的查询显示了一个城市不在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);

输出

BETWEEN AND IN OPERATOR

解释

在这个查询中,显示了一个雇员的详细信息,其ID在201和501的范围内,其工资也在value_sets中,即40000,50000和60000。

本教程到此为止。