1、建立一個臨時表,用於演示sqlserver語法中的exists使用方式IF OBJECT_ID("tempdb..#tmp1") IS NOT NULL DROP TABLE #tmp1; CREATE TABLE #tmp1( Col1 varchar(50), Col2 varchar(200) )。
2、往臨時表中插入幾行測試資料,用於演示exists使用insert into #tmp1(Col1, Col2) values("Code1", "1");insert into #tmp1(Col1, Col2) values("Code10", "2");insert into #tmp1(Col1, Col2) values("Code100", "3")。
3、查詢臨時表中的測試資料select * from #tmp1。
4、如果在exists中查詢的結果是NULL,最終exists返回的仍然是true。例如,下面的語句返回的就是整個表的結果select * from #tmp1 where exists(select null)。
5、使用子查詢結合exists使用,當exists返回true的時候,就返回指定結果select *from #tmp1where exists(select 1 from #tmp1 where Col2 = 2)and Col1 = "Code1"。
6、使用子查詢結合exists使用,當exists返回false的時候,就不會返回指定的結果。例如,將上面SQL子查詢的Col2從等於2,改成等於20select *from #tmp1where exists(select 1 from #tmp1 where Col2 = 20)and Col1 = "Code1"。
7、在儲存過程中,經常會使用exists判斷條件是否成立,例如,判斷臨時表中是否存在記錄if exists(select 1 from #tmp1) print 不存在資料"。
1、建立一個臨時表,用於演示sqlserver語法中的exists使用方式IF OBJECT_ID("tempdb..#tmp1") IS NOT NULL DROP TABLE #tmp1; CREATE TABLE #tmp1( Col1 varchar(50), Col2 varchar(200) )。
2、往臨時表中插入幾行測試資料,用於演示exists使用insert into #tmp1(Col1, Col2) values("Code1", "1");insert into #tmp1(Col1, Col2) values("Code10", "2");insert into #tmp1(Col1, Col2) values("Code100", "3")。
3、查詢臨時表中的測試資料select * from #tmp1。
4、如果在exists中查詢的結果是NULL,最終exists返回的仍然是true。例如,下面的語句返回的就是整個表的結果select * from #tmp1 where exists(select null)。
5、使用子查詢結合exists使用,當exists返回true的時候,就返回指定結果select *from #tmp1where exists(select 1 from #tmp1 where Col2 = 2)and Col1 = "Code1"。
6、使用子查詢結合exists使用,當exists返回false的時候,就不會返回指定的結果。例如,將上面SQL子查詢的Col2從等於2,改成等於20select *from #tmp1where exists(select 1 from #tmp1 where Col2 = 20)and Col1 = "Code1"。
7、在儲存過程中,經常會使用exists判斷條件是否成立,例如,判斷臨時表中是否存在記錄if exists(select 1 from #tmp1) print 不存在資料"。