自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL Server 2005 EXCEPT與INTERSECT的區(qū)別

數(shù)據(jù)庫(kù) SQL Server
我們今天主要向大家描述的是SQL Server 2005 EXCEPT與INTERSECT運(yùn)算符的正確使用以及對(duì)其實(shí)際操作的不同之處的講述。

此文章主要向大家描述的是SQL Server 2005 EXCEPT與INTERSECT運(yùn)算符的正確使用,同時(shí)本文也有對(duì)EXCEPT與INTERSECT運(yùn)算符的實(shí)際應(yīng)用的比較,以及對(duì)其在實(shí)際操作中值得我們大家注意的相關(guān)事項(xiàng)的描述。

1.簡(jiǎn)介

 

SQL Server 2005 EXCEPT和INTERSECT運(yùn)算符使您可以比較兩個(gè)或多個(gè)SELECT語(yǔ)句的結(jié)果并返回非重復(fù)值。

2.區(qū)別

EXCEPT運(yùn)算符返回由EXCEPT運(yùn)算符左側(cè)的查詢返回、而又不包含在右側(cè)查詢所返回的值中的所有非重復(fù)值。

INTERSECT返回由INTERSECT運(yùn)算符左側(cè)和右側(cè)的查詢都返回的所有非重復(fù)值。

3.注意事項(xiàng)

(1).使用SQL Server 2005 EXCEPT或INTERSECT比較的結(jié)果集必須具有相同的結(jié)構(gòu)。它們的列數(shù)必須相同,并且相應(yīng)的結(jié)果集列的數(shù)據(jù)類型必須兼容

(2).INTERSECT運(yùn)算符優(yōu)先于EXCEPT

(3).SELECT INTO必須是包含INTERSECT或EXCEPT運(yùn)算符的語(yǔ)句中的***個(gè)查詢,用來(lái)創(chuàng)建容納最終結(jié)果集的表

(4).ORDER BY子句中的列名或別名必須引用左側(cè)查詢返回的列名

4.例題:

建立3個(gè)表,分別插入數(shù)據(jù)

  1. create table TableA(col1 int)   
  2. insert into TableA select 1   
  3. insert into TableA select 1   
  4. insert into TableA select 2   
  5. insert into TableA select 3   
  6. insert into TableA select 4   
  7. insert into TableA select 4   
  8. insert into TableA select 5   
  9. insert into TableA select null   
  10. insert into TableA select null   
  11. create table TableB(col2 int)   
  12. insert into TableB select null   
  13. insert into TableB select 1   
  14. insert into TableB select 2   
  15. insert into TableB select 3   
  16. create table TableC(col3 int)   
  17. insert into TableC select 1   
  18. insert into TableC select 5   
  19. insert into TableC select 6  

利用SQL Server 2005 EXCEPT

找出TableA表的col1列不存在Tablec表col1列的所有非重復(fù)值

  1. SELECT col1 FROM TableA   
  2. EXCEPT   
  3. SELECT col3 FROM Tablec  

結(jié)果如下:

  1. col1   
  2. -   
  3. NULL   
  4. 2   
  5. 3   
  6. 4   

sql 2000的版本,用not exists實(shí)現(xiàn)SQL Server 2005 EXCEPT的功能

  1. SELECT col1   
  2. FROM TableA as a   
  3. where not exists(SELECT col3 FROM Tablec where a.col1=col3)   
  4. group by col1  

sql 2000,not in是得不到上述結(jié)果的

空值表示值未知。空值不同于空白或零值。沒(méi)有兩個(gè)相等的空值。

比較兩個(gè)空值或?qū)⒖罩蹬c任何其他值相比均返回未知,這是因?yàn)槊總€(gè)空值均為未知。

使用IN或NOT IN比較后返回的所有空值都將返回UNKNOWN。

將空值與IN或NOT IN一起使用會(huì)產(chǎn)生意外結(jié)果。

  1. SELECT col1   
  2. FROM TableA   
  3. where col1 not in(SELECT col3 FROM Tablec)   
  4. group by col1  

結(jié)果如下:

  1. col1   
  2. -   
  3. 2   
  4. 3   
  5. 4   

INTERSECT運(yùn)算符優(yōu)先于EXCEPT

運(yùn)算步驟是:先運(yùn)算TableB和TableC的INTERSECT,再和TableA運(yùn)算SQL Server 2005 EXCEPT

  1. SELECT col1 FROM TableA   
  2. EXCEPT   
  3. SELECT col2 FROM TableB   
  4. INTERSECT   
  5. SELECT col3 FROM TableC  

結(jié)果如下:

  1. col1   
  2. -   
  3. NULL   
  4. 2   
  5. 3   
  6. 4   
  7. 5   

SELECT INTO的應(yīng)用

SELECT INTO必須是語(yǔ)句中的***個(gè)查詢

我記得SELECT INTO與UNION運(yùn)算符的使用也是這樣的規(guī)則

  1. SELECT col1   
  2. into #tem   
  3. FROM TableA   
  4. EXCEPT   
  5. SELECT col3   
  6. FROM Tablec   
  7. select * from #tem   
  8. drop table #tem 

結(jié)果如下:

  1. col1   
  2. -   
  3. NULL   
  4. 2   
  5. 3   
  6. 4   

ORDER BY子句

ORDER BY子句中的列名或別名必須引用左側(cè)查詢返回的列名

  1. SELECT col1 FROM TableA   
  2. INTERSECT   
  3. SELECT col3 FROM TableC   
  4. order by col1  

結(jié)果如下:

  1. col1   
  2. -   
  3. 1   
  4. 5   

 

上述的相關(guān)內(nèi)容就是對(duì)SQL Server 2005中EXCEPT和INTERSECT運(yùn)算符的使用的描述,希望會(huì)給你帶來(lái)一些幫助在此方面。

【編輯推薦】

  1. SQL Server identity列,美中不足之處
  2. SQL Server DateTime數(shù)據(jù)類型的另類解讀
  3. SQL Server 2000的安全策略的正確打造
  4. SQL Server 數(shù)據(jù)導(dǎo)入的實(shí)際行為規(guī)范描述
  5. MS SQL Server問(wèn)題與其正確解答方案

 

責(zé)任編輯:佚名 來(lái)源: CNW
相關(guān)推薦

2010-07-06 10:36:35

SQL Server

2011-04-18 13:02:08

SQL Server SQL Server

2011-07-06 13:09:11

SQL Server

2010-07-26 17:43:34

SQL Server

2011-02-28 17:41:20

SQL Server

2010-06-17 15:09:49

SQL Server

2010-07-14 17:32:53

SQL Server

2010-07-23 12:55:29

SQL Server

2025-01-13 07:30:00

SQL開(kāi)發(fā)組合查詢

2011-09-07 15:11:31

SQL Server同步

2010-06-28 13:51:18

SQL Server

2010-07-09 11:06:13

SQL Server

2010-10-21 15:13:20

SQL Server系

2010-07-16 11:30:06

SQL Server

2010-06-28 14:49:51

SQL Server

2010-06-30 08:34:27

SQL Server

2011-03-29 15:27:26

SQL Server 動(dòng)態(tài)管理

2010-07-16 10:35:19

SQL Server

2011-03-25 10:04:51

2011-09-01 16:13:37

Visual StudSQL Server 存儲(chǔ)過(guò)程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)