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⼦子句中则不能。
 


你可能感兴趣的:(Sql server--Where,having过滤方法总结)