sql基础知识第三部分

       前面二部分零散的记录了一些学习日记,这部分主要记录一点之前了解甚少的sql语句技巧,以备查阅。古人曰:好记性不如烂笔头,所以看到的sq语句则用这种方式记录下,以便举一反三,真正在工作中能用上。

      今日早上看了一篇反思,从中学到了很多!觉得很多观点很有道理,学习在于积累,坚持,计划相结合,没有什么能一触而就的,只能不断学习,不断积累,才能突破自己,所以相对于任何事情来说,学习的成本是最小的,因为我们每时每刻都可以学,而且学习的资源很多,最重要的是我们要把学习的内容记载在心里。学习不是为了炫耀和挣钱,是为了增加自己的充实度,增加自己的内涵,所以希望我们每个人在学习的过程中一定要坚持,而且有所突破,有所进步,致我们一起失去的青春,大龄青年们一起加油。


关于sql的学习记录,还有很多需要学习的部分!

 一、查询语句 

1、case 的用法

1)示例(case和聚合函数一起使用):
 select county, 
sum
(
case when sex='1' then pp else 0 end
),
sum
(
case when sex='2' then pp else 0 end
),
from a
group by county
 --------查询一个表中,按国家汇总,男人数占多少,女人数占多少的示例,本来用union也可以完成,但是这样会消耗2个select,对性能不太好!

2) 示例2:查询充值表中,每天每种充值方式的总金额,如下所示:
 select 
 paytime as'支付时间'sum
case when paytype=0 then money else 0 end
as '支付宝',
sum
(
case when paytype=1 then money else 0 end
)as '手机短信'
sum
case when paytype=2 then money else 0 end
as ‘银行卡’
sum
(
case when paytype=3 then money else 0 end 
)as '电话卡'
from 充值表  group by paytime
 

  

2、TOP的用户,在oracle不支持 TOP的查询,刚试了下,竟然报错,所以只能用其他语句了

1select * from A where rownum<10  order by rownum asc  //asc是升序  ASCE 是降序

 

3、 distinct查询重复的数据只显示一条,此sql语句很实用。

 

 4、Union和Union all的用法

  1. Union,对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;  
  2.   
  3. Union All,对两个结果集进行并集操作,包括重复行,不进行排序;
  4. 可以在最后一个结果集中指定Order by子句改变排序方式。 
      

 

posted on 2015-11-04 11:17  找回失去的青春  阅读(199)  评论(0)    收藏  举报

导航