SQL

SQL:
DISTINCT --> 去重复行,必须最前面
UNION -->去重
UNION ALL --> 不去重复
COALESCE  -->返回第一个非空
SUM -->select id, sum(quantity) from t_a 按id计算总和

在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。 

HAVING --> select id, sum(quantity) from t_a having sum(quantity) > 100; 总和大于100的id
EXISTS-->
select  Resc_id  from  dbo.Res_Coach where  EXISTS (select * from  Res_Coach  where  Resc_id  is  null)
查询原理:
遍历dbo.Res_Coach每一条,同时处理where条件(EXISTS (select * from Res_Coach where Resc_id=0) 判断结果为true或者false),为true时拿出该条,false时,放弃该条记录.
一、select 1 from 的作用
1、select 1 from mytable 与 select anycol(目的表集合中的任意一行)from mytable、select * from mytable 作用上来说是没有差别的,都是查看是否有记录。
2、select 1 from 中的1是一常量,查到的所有行的值都是它,但从效率上来说,1>anycol>*,因为不用查字典表。
3、查看记录条数可以用select sum(1) from mytable;等价于select sum(*) from mytable。
4、例如,select top 1 1 from mytable 用来判断表是否有记录,如有记录则显示一个 1,没有则不显示。

 

select market,count(seats) from secu_path 
ORA-00937: 不是单组分组函数

总结:在select需要查询的语句中选中的字段,必须出现在group by子句中

 对于group by 语句,在查询出来的字段中,只能包含group by后面跟的字段以及分组函数
 简单的来说 如果查询字段中有sum、count类似的聚合函数 那么其他字段必须要在group by 中出现

 

posted on 2017-02-15 09:34  abelian  阅读(97)  评论(0编辑  收藏  举报