T-sql 学习(2) - join与group by

 1,  join与where
1)inner join和out jion(left join, right join, full join):产生两个或者多个表的连接结果,但后者可能会有NULL结果出现。

2)cross join 不支持on的语法,但是支持where子句的限制。而实际上,cross join就是没有任何条件的select * from a, b两个表:他就会产生笛卡尔积的结果。

 

join 与where 的区别,有两个资源可以查看:
1)http://www.cnblogs.com/pcjim/archive/2008/10/06/799302.html

2)“Transact-SQL权威指南.pdf”,权威就是权威,说的明白


join连接多于2个表的方法:

select ...

from A

join B

on ...

join C

on ...

 

建议使用join,因为它是ANSI  SQL-92标准;where是传统语法,有可能有二义性。

where子句的顺序不重要,不会影响到查询的结果;这样做,是为了把这个性能的提高编程服务器的一部分工作;


2,
类型转换cast和convert
declare @name as char(10)
declare @id as smallint
set @name = '100'
set @id = cast(@name as smallint)


3,
case ... when的用法,被权威老大批判了一下,说是太罗嗦;没办法,能用就行了。


4,
数据分组,group by
having之于 group by,相当于where 之于select。
只是,having是操作在结果集合上,where是操作在查询表上。也正因为如此,建议使用where(或者join等价的)过滤,而不是having。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值