日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
SQLServer2005EXCEPT與INTERSECT的區(qū)別

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

創(chuàng)新互聯(lián)是一家專注網(wǎng)站建設(shè)、網(wǎng)絡(luò)營銷策劃、小程序設(shè)計(jì)、電子商務(wù)建設(shè)、網(wǎng)絡(luò)推廣、移動互聯(lián)開發(fā)、研究、服務(wù)為一體的技術(shù)型公司。公司成立10年以來,已經(jīng)為近千家護(hù)欄打樁機(jī)各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務(wù)?,F(xiàn)在,服務(wù)的近千家客戶與我們一路同行,見證我們的成長;未來,我們一起分享成功的喜悅。

1.簡介

SQL Server 2005 EXCEPT和INTERSECT運(yùn)算符使您可以比較兩個或多個SELECT語句的結(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)算符的語句中的***個查詢,用來創(chuàng)建容納最終結(jié)果集的表

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

4.例題:

建立3個表,分別插入數(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. NULL 

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é)果的

空值表示值未知??罩挡煌诳瞻谆蛄阒?。沒有兩個相等的空值。

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

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

將空值與IN或NOT IN一起使用會產(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 

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. NULL 

SELECT INTO的應(yīng)用

SELECT INTO必須是語句中的***個查詢

我記得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. NULL 

ORDER BY子句

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

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

結(jié)果如下:

 
 
 
  1. col1 

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


網(wǎng)站標(biāo)題:SQLServer2005EXCEPT與INTERSECT的區(qū)別
分享地址:http://www.dlmjj.cn/article/dpgesoi.html