如何进行SQL SERVER中关于exists 和 in的简单分析
发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,这篇文章给大家介绍如何进行SQL SERVER中关于exists 和 in的简单分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。In与Exists这两个函数是差不多的,但由于优
千家信息网最后更新 2025年02月07日如何进行SQL SERVER中关于exists 和 in的简单分析
这篇文章给大家介绍如何进行SQL SERVER中关于exists 和 in的简单分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
In与Exists这两个函数是差不多的,但由于优化方案不同,通常NOT Exists要比NOT IN要快,因为NOT EXISTS可以使用结合算法二NOT IN就不行了,而EXISTS则不如IN快,因为这时候IN可能更多的使用结合算法。
如图,现在有两个数据集,左边表示#tempTable1,右边表示#tempTable2。现在有以下问题:
1.求两个集的交集?
2.求tempTable1中不属于集#tempTable2的集?
先创建两张临时表:
create table #tempTable1( argument1 nvarchar(50), argument2 varchar(20), argument3 datetime, argument4 int);insert into #tempTable1(argument1,argument2,argument3,argument4)values('preacher001','13023218757',GETDATE()-1,1);insert into #tempTable1(argument1,argument2,argument3,argument4)values('preacher002','23218757',GETDATE()-2,2);insert into #tempTable1(argument1,argument2,argument3,argument4)values('preacher003','13018757',GETDATE()-3,3);insert into #tempTable1(argument1,argument2,argument3,argument4)values('preacher004','13023257',GETDATE()-4,4);insert into #tempTable1(argument1,argument2,argument3,argument4)values('preacher005','13023218',GETDATE()-5,5);insert into #tempTable1(argument1,argument2,argument3,argument4)values('preacher006','13023218',GETDATE()-6,6);insert into #tempTable1(argument1,argument2,argument3,argument4)values('preacher007','13023218',GETDATE()-7,7);insert into #tempTable1(argument1,argument2,argument3,argument4)values('preacher008','13023218',GETDATE()-8,8);create table #tempTable2( argument1 nvarchar(50), argument2 varchar(20), argument3 datetime, argument4 int);insert into #tempTable2(argument1,argument2,argument3,argument4)values('preacher001','13023218757',GETDATE()-1,1);insert into #tempTable2(argument1,argument2,argument3,argument4)values('preacher0010','23218757',GETDATE()-10,10);insert into #tempTable2(argument1,argument2,argument3,argument4)values('preacher003','13018757',GETDATE()-3,3);insert into #tempTable2(argument1,argument2,argument3,argument4)values('preacher004','13023257',GETDATE()-4,4);insert into #tempTable2(argument1,argument2,argument3,argument4)values('preacher009','13023218',GETDATE()-9,9);
比如,我现在以#tempTable1和#tempTable2的argument1作为参照
1.求两集的交集:
1)in 方式
select * from #tempTable2 where argument1 in(select argument1 from #tempTable1)
2)exists 方式
select * from #tempTable2 t2 where exists (select * from #tempTable1 t1 where t1.argument1=t2.argument1)
2.求tempTable1中不属于集#tempTable2的集
1)in 方式
select * from #tempTable1 where argument1 not in(select argument1 from #tempTable2)
2)exists 方式
select * from #tempTable1 t1 where not exists (select * from #tempTable2 t2 where t1.argument1=t2.argument1)
关于如何进行SQL SERVER中关于exists 和 in的简单分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
方式
两个
更多
中关
分析
交集
内容
算法
帮助
不同
不行
不错
差不多
兴趣
函数
右边
小伙
小伙伴
数据
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
湖北互联网养老软件开发公司
网络安全宣传标语卡通
河南网络服务器机柜云主机
互联网网络技术毕业工作是什么
电力企业网络安全专业技术培训
远程服务器403禁止怎么解决
一汽奔腾软件开发岗工资
密码编码学与网络安全第八版笔记
网络安全怎么做好
收缩数据库 sql 命令
软件开发论文内容
从软件开发岗位到项目管理岗
大连豪森软件开发
网络安全主题班团会总结书
如何修改管家婆sql服务器名称
阿里云服务器怎么挂网店
数据库导航芯片
二层网络技术结论
电脑搭建电影服务器
软件开发实习生需要做什么
安卓手机软件开发宽度高度
定制软件开发公
服务器能看到登录数据吗
网络安全座谈会419
计算机网络技术是高级复杂吗
服务器补胎
网络安全法第68条
ice服务器真实情况
计算机网络技术题
云服务器能用数据库吗