Sql server--Where,having过滤方法总结

一 where过滤

1 使AND OR 组合查询条件 

SELECT * from sell WHERE Sell_Price>=1000 and(or) Sell_Price<=2000 


2 使⽤用Between Not Between 过滤记录 

SELECT * from sell WHERE Sell_Price BETWEEN 1000 and 2000(Not Between 不在这范围) 


3 使⽤用IN Not IN 过滤记录

SELECT * from worker WHERE Work_id IN ('9601','9702')  (Not IN就不是这个...范围)


4使⽤用LIKE 和 通配符过滤记录

% 有零个或更多字符组成   - 单个字符

[] 指定范围 例如【A~F】[^]指定范围外 [^A~F]

例、从“WORKER”中查找姓名中第⼆二个字 是⽂文的职员信息。

Select * FROM worker Where work_name LIKE ' __' 

例:查询worker表中所有姓王的职员信息 

Select * from student Where student_name like ' %' 

例、显⽰示姓刘和姓王的职员信息

Select * FROM worker Where work_name LIKE ' [刘王]%' 

例、从“worker”表中检索职⼯工编号末位数字不 在2~6范围内的职员。 

select * from worker where work_id like '%[^2- 6]' 


5 使⽤用空值过滤记录

select * from supplier where sup_tel is (not) null 


二 having过滤

汇总出销售总计在1000元以上的职员的编号及销售总计 

select word_id,sum(sell_price) from sell where sell_price > 1000 group by word_id

where筛选是先选出销售价格在1000以上的,然后再分组汇总

select word_id,sun(sell_price)from sell group by word_id having sum(sell_price)>1000

having筛选是先分组汇总,再选出销售总价在1000以上的


 不同点:
1 WHERE检查每条记录是否满⾜足条件,⽽而HAVING检查分组汇总之后的 各组汇总数据是否满⾜足条件;
2 在
Having⼦子句中可⽤用集合函数,在Where⼦子句中则不能。
 


转载于:https://my.oschina.net/u/2346786/blog/499389

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值