sql集锦_20081019_case,group by ,count()等聚合函数,HAVING COUNT(*)>1,inner join,left join

本文介绍了SQL中的连接操作、CASE语句使用、分组及筛选等实用技巧,并通过具体示例帮助读者理解如何进行复杂的数据查询与处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//  http://blog.youkuaiyun.com/lenotang/archive/2008/08/25/2828663.aspx

 

一,

left join table1 b on a.dep=b.dep 划线是连接的条件 group by a.dname

~~~select 后有的字段一般要出现在 group by 中

 

二,

case

        when 条件 then 结果

                when 条件 then 结果    //可以有N个when

        esle  结果

end                        //要有end结束case

 

三,

select N.rq,N.,M. from

(select rq,=count(*) from #tmp where shengfu='' group by rq)N

inner join

(select rq,=count(*) from #tmp where shengfu='' group by rq)M

on N.rq=M.rq

 

等于

select M.rq,M.胜,N.负
from
(select rq , count(*) as 胜 from tmp1 where shengfu='胜' group by rq)M
inner join
(select rq, count(*) as 负 from tmp1 where shengfu='负' group by rq)N
on N.rq=M.rq

 

1.胜=~~~;负=~~~

2.N;M  标记结果集

 

四,

 

GROUP BY [单位名称]

HAVING COUNT(*)>1     //有记录的~~~

 

group by 字段名 having 组过滤条件

 

select top 2 * from teacher    //只是选取前两条记录

 

五,

 

select teacher.tID , teacher.tName ,count(ts.sID) as '学生人数' from
( teacher left join ts on teacher.tID = ts.tID )
left join student on ts.sID = student.sID
where teacher.tAge >30 and student.sAge >12
group by teacher.tID,teacher.tName

        

1.inner join       相等的记录先出现

表A inner join 表B     =    表B inner join  表A    只不过字段排列先后不同

2. left join      左表全出现,右表相等的就出现

3.right join     右表全出现,左表相等的就出现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值