数据库如何进行有条件的查询?

数据库如何进行有条件的查询?,第1张

条件

使用where子句对表中的数据筛选,结果为true的行会出现在结果集中

语法如下:

select * from 表名 where 条件

例:

select * from students where id=1

1

2

3

where后面支持多种运算符,进行条件的处理

比较运算符

逻辑运算符

模糊查询

范围查询

空判断

比较运算符

等于: =

大于: >

大于等于: >=

小于: <

小于等于: <=

不等于: != 或 <>

例1:查询编号大于3的学生

select * from students where id >3

例:查询编号不大于4的学生

select * from students where id <= 4

1

2

3

4

5

6

逻辑运算符

and

or

not

例:查询编号大于3的女同学

select * from students where id >3 and gender=0

1

2

3

模糊查询

like

%表示任意多个任意字符

_表示一个任意字符

例:查询姓黄的学生

select * from students where name like '黄%'

1

2

3

范围查询

in表示在一个非连续的范围内

空判断

注意:null与’'是不同的

判空is null

例:查询没有填写身高的学生

select * from students where height is null

判非空is not null

1

2

3

4

优先级

优先级由高到低的顺序为:小括号,not,比较运算符,逻辑运算符

and比or先运算,如果同时出现并希望先算or,需要结合()使用

————————————————

Excel中多条件查找数据方法

在使用Excel中,如果根据某一个条件,查找表中的值,这是一件较为容易的事情,MATCH()、INDEX()、LOOKUP()、VLOOKUP()、HLOOKUP()等函数均可较为容易的实现。但如果要进行满足多条件查找,则是一件不容易的事情,而工作中会经常遇到需要对满足两个以上条件的数据进行查找并引用的'问题,下面是我提供多种方法如:数组公式、VLOOKUP函数、INDEX和MATCH函数等等,大家可以根据情况选择。SHEET1工作表内容如图:

现在要求在SHEET2工作表的A、B列输入有关内容后,C列自动从SHEET1工作表中查找并引用相应的C列的内容。SHEET2工作表如图:

SHEET2工作表C1单元格使用以下数组公式,可达到目的: =IF(OR(A1="",B1=""),"",OFFSET(Sheet1!$C$1,SUM(IF((Sheet1!A$1:A$1000=A1)*(Sheet1!B$1:B$1000=B1),ROW(Sheet1!C$1:C$1000),0))-1,0,1,1)) 注意:输入完公式后要按Ctrl+Shift+Enter键,让它自动加上数组公式符号"{}"。

用VLOOKUP函数解决方法:

=IF(OR(A1="",B1=""),"",VLOOKUP(A1&B1,IF({1,0},Sheet1!A$1:$A$1000&Sheet1!B$1:B$1000,Sheet1!C$1:C$1000),2,0))

用INDEX和MATCH函数解决方法:

=IF(OR(A1="",B1=""),"",INDEX(Sheet1!C$1:C$1000,MATCH(A1&B1,Sheet1!A$1:A$1000&Sheet1!B$1:B$1000,0))) 这两个也是数组公式。

另提供两个不用数组公式的解决方法:

=IF(OR(A1="",B1=""),"",INDIRECT("Sheet1!$C"&SUMPRODUCT((Sheet1!A$1:A$1000=A1)*(Sheet1!B$1:B$1000=B1)*ROW(Sheet1!C$1:C$1000)))) =IF(OR(A1="",B1=""),"",LOOKUP(2,1/((Sheet1!A$1:A$1000=A1)*(Sheet1!B$1:B$1000=B1)),Sheet1!C$1:C$1000))

推荐使用VLOOKUP的应用,而且不用太多改变原数据库。

增加对#N/A的判断函数:

更改函数如下(数组函数)

=IF(ISERROR(VLOOKUP(A1&B1,IF({1,0},Sheet1!A$1:$A$1000&Sheet1!B$1:B$1000,Sheet1!C$1:C$1000),2,FALSE)),"",VLOOKUP(A1&B1,IF({1,0},Sheet1!A$1:$A$1000&Sheet1!B$1:B$1000,Sheet1!C$1:C$1000),2,0))

如果该位置显示为0 可以使用“条件格式……” 当该格=0时,字体颜色同背景色。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6714322.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存