多值检测

“公司要为年龄为23岁、25岁和28岁的员工发福利,请将他们的年龄、工号和姓名检索出来”,要完成这样的功能,我们可以使用OR语句来连接多个等于判断。SQL语句如下:


SELECT FAge,FNumber,FName FROM T_Employee WHERE FAge=23 OR FAge=25 OR FAge=28

执行完毕我们就能在输出结果中看到下面的执行结果:

这里要检索的年龄值是很少的,只有3个,如果要求我们“检索年龄为21岁、22岁、25岁、28岁、30岁、33岁、35岁、38岁、46岁的员工信息”,那么我们就要用OR连接九个等于判断:


SELECT FAge,FNumber,FName FROM T_Employee WHERE FAge=21 OR FAge=22 OR FAge=25 OR FAge=28 OR FAge=30 OR FAge=33 OR FAge=35 OR FAge=38 OR FAge=46

这不仅写起来是非常麻烦的,而且维护的难度也相当大,一不小心就会造成数据错误。为了解决进行多个离散值的匹配问题,SQL提供了IN语句,使用IN我们只要指定要匹配的数据集合就可以了,使用方法为“IN (值1,值2,值3……)”。要完成“公司要为年龄为23岁、25岁和28岁的员工发福利,请将他们的年龄、工号和姓名检索出来”这样功能的话,可以使用下面的SQL语句:


SELECT FAge,FNumber,FName FROM T_Employee WHERE FAge IN (23,25,28)

执行完毕我们就能在输出结果中看到下面的执行结果:

可以看到执行结果和使用OR语句来连接多个等于判断的方式是一样的。

使用IN我们还可以让字段与其他表中的值进行匹配,比如“查找所有姓名在迟到记录表中的员工信息”,要实现这样的功能就需要IN来搭配子查询来使用。

posted @ 2018-10-20 00:51  尐鱼儿  阅读(119)  评论(0编辑  收藏  举报