首页 > 其他 > 详细

常用语句杂谈

时间:2014-04-07 07:35:26      阅读:629      评论:0      收藏:0      [点我收藏+]

10:40 2013-08-29
JOIN ON...AND

bubuko.com,布布扣
1 A left join B on A.col1=B.col1 and A.col2=xx
2 与A left join B on A.col1=B.col1 where A.col2=xx的区别
bubuko.com,布布扣

前面一种情况A.col2=xx是作为与 B的关联条件,满足on条件的返回B值,否则B为NULL(只影响B是否为NULL)
后面一种情况A.col2=xx是作为where筛选条件,满足where条件的A才能作为左表(影响A的行数)
EXISTS子查询
exists用于选择条件中一般都用作相关子查询
exists子句根据其内查询语句的结果集空或者非空,返回一个布尔值。

bubuko.com,布布扣
1 select top 20 * from DB_1.dbo.MF_MO_Z
2 where not exists (select top 10 * from DB_1.dbo.MF_MO_Z)
bubuko.com,布布扣

上面子查询是无关子查询,根据语句not exists返回的是false,因此整个语句返回为空。
1、先判断是无关还是相关子查询
无关子查询:子查询本身能直接执行
相关子查询:子查询执行本身会报错,因为引用到了外部查询的表
2、按照下面的说明,分析语句返回结果
无关:只要后面有一条记录,条件就成立
相关:将外查询表的每一行,代入内查询作为检验,如果内查询返回的结果取非空值,则EXISTS子句返回TRUE,这一行可作为外查询的结果行,否则不能作为结果。

常用语句杂谈,布布扣,bubuko.com

常用语句杂谈

原文:http://www.cnblogs.com/Uest/p/3585371.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!