欢迎来到天天文库
浏览记录
ID:34726080
大小:62.68 KB
页数:4页
时间:2019-03-10
《sql中 exists的用法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、理解SQL语句中Exists() exists对于主查询而言只有一个作用:返回ture或false,而其本身查询的結果集不具任何意义因此在子查询的Select命令语句的字段行中通常使用通用字符*或者直接使用数字1执行步骤: 实际上是主查询每一次得到一条记录时,都会去判断where后面的条件是否都满足,如果满足了,那么这条记录将会作为结果返回。比如有如下数据表Tb col100001 100002 100003 100004 100008 100012 100013100014100023100030100031
2、100032一需要查询出col字段的连续序号的最小值即希望返回数据集100001100008100012100023100030 第一步 selectcolfromtba whereexists(select*fromtbwherecol=a.col-1)返回数据集100002100003100004100013100014100031100032 该语句的理解为主查询每一次得到一条记录时,都会去判断where后面的条件是否都满足,如果满足,条件为真,则该记录作为结果返回. 执行步骤 当主查询在第一条记录时1
3、00001,该记录是否返回取决于子查询的结果集是否为空即条件是否为真. select*fromtbwherecol=100000 (100001-1) 结果集为空,条件为假,则该记录不返回. 第二条记录100002 select*fromtbwherecol=100001 (100002-1) 结果集不为空,条件为真,则该记录返回. ... 第五条记录100008 select*fromtbwherecol=100007 (100008-1) 结果集为空,条件为假,则该记录不返回. ... 第十二条记录1000
4、32 select*fromtbwherecol=100031 (100032-1) 结果集不为空,条件为真,则该记录返回. 第二步将第一步数据集的相反数据 selectcolfromtba wherenotexists(select*fromtbwherecol=a.col-1)得到结果集100001100008100012100023100030二在ProductCount,ProductCode,WorkstationCode字段值相同情况下,需要查询出ProductNum字段的连续序号的最小值Prod
5、uctNum ProductCount ProductCode WorkstationCode0 200 301A00 13-10-01-11 100 001100 13-10-01-11 100 001100 13-14-01-12 100 001100 13-10-01-12 100 00
6、1100 13-14-01-13 100 001100 13-10-01-13 200 001100 13-14-01-14 200 001100 13-10-01-15 200 001100 13-10-01-16 200 001100 13-10-01-1
7、7 200 001100 13-10-01-18 100 001100 13-10-01-19 100 001100 13-10-01-110 100 001100 13-10-01-192126 100 001100 13-10-01-1 SQL语句为SELECT* FR
8、OMdbo.TbOrderDetailsaWHERENOTEXISTS( SELECT*FROMdbo.TbOrderDetails WHERE(ProductNum=a.ProductNum-1)AND (ProductCount=a.ProductCount)AND (ProductCode=a.ProductCode)AND (Workst
此文档下载收益归作者所有