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

首頁 > 開發 > 綜合 > 正文

Sqlserver 中exists 和 in

2024-07-21 02:49:31
字體:
來源:轉載
供稿:網友
Sqlserver 中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)

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)

3)exists對應數據的行索引

例如現在有兩張表tbl_customer,tbl_phone,其中一個客戶對應一個或多個電話信息,在維護電話號碼時,往往會顯示例如客戶姓名、客戶性別、修改人、修改時間等等點,查看選中的客戶電話詳細記錄時可以查看該客戶名義下的所有電話號碼信息;因為是維護的客戶電話號碼,所以這里的修改人和修改時間應該針對的是當前客戶對應的所有電話號碼的最新修改時間,那么在提取這些數據時,可以使用 max() 和 exists獲取這一個特別數據。

createtabletbl_phone(idnumber(12)notnull,customer_idnumber(12),phonenumbervarchar(20),isdeletedchar(1),syscreatedatetimedate,syscreaternumber(12),syslastmodifytimedate,syslastmodifiernumber(12)

)

createtabletbl_customer(idnumber(12)notnull,namevarchar(50),genderchar(1),isdeletedchar(1),syscreatedatetimedate,syscreaternumber(12),syslastmodifytimedate,syslastmodifiernumber(12)

)

查詢語句這樣寫:

selectdistinctc.name,

code(c.gender,'1','男','0','女',null)asgender,(selectsyslastmodifytimefromtbl_phonewhereexists(selectmax(t.syslastmodifytime)fromtbl_vip_phonetwheret.customer_id=a.id)andrownum=1)assyslastmodifytime,(selectsyslastmodifierfromtbl_phonewhereexists(selectmax(t.syslastmodifytime)fromtbl_vip_phonetwheret.customer_id=a.id)andrownum=1)assyslastmodifierfromtbl_customercjointbl_phoneponc.isdeleted=0andp.isdeleted=0andc.id=p.customer_id


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 边坝县| 天等县| 石林| 祁连县| 无锡市| 柳河县| 开封县| 襄汾县| 东光县| 乃东县| 黔江区| 咸宁市| 西贡区| 司法| 沈阳市| 宝应县| 武安市| 金山区| 康乐县| 达尔| 灌南县| 南部县| 龙口市| 石阡县| 宿迁市| 马山县| 浦城县| 雷山县| 江孜县| 嵩明县| 独山县| 华容县| 黔西| 年辖:市辖区| 双柏县| 平阴县| 富民县| 治多县| 鄄城县| 边坝县| 油尖旺区|