国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

SQL SERVER中關于exists 和 in的簡單分析

2024-08-31 01:02:19
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了SQL SERVER中關于exists 和 in的簡單分析,需要的朋友可以參考下
 
 

In與Exists這兩個函數是差不多的,但由于優化方案不同,通常NOT Exists要比NOT IN要快,因為NOT EXISTS可以使用結合算法二NOT IN就不行了,而EXISTS則不如IN快,因為這時候IN可能更多的使用結合算法。

SQL SERVER中關于exists 和 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)

SQL SERVER中關于exists 和 in的簡單分析

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的簡單分析


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 牡丹江市| 枝江市| 平陆县| 双柏县| 忻城县| 宁德市| 林甸县| 六盘水市| 甘肃省| 杭州市| 阿巴嘎旗| 南乐县| 绥滨县| 汕头市| 永川市| 仁化县| 江安县| 普宁市| 夏津县| 徐汇区| 哈密市| 蒲城县| 新干县| 双峰县| 乐陵市| 肇州县| 商河县| 日喀则市| 卓资县| 唐河县| 肥东县| 南宁市| 广德县| 利辛县| 定州市| 梁平县| 彰化县| 海盐县| 彭州市| 临澧县| 昭觉县|