資源描述:
《sql except和intersect運算符(比較兩個或多個select語句的結(jié)果并返回非重復值)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、1.簡介EXCEPT和INTERSECT運算符使您可以比較兩個或多個SELECT語句的結(jié)果并返回非重復值。2.區(qū)別EXCEPT運算符返回由EXCEPT運算符左側(cè)的查詢返回、而又不包含在右側(cè)查詢所返回的值中的所有非重復值。INTERSECT返回由INTERSECT運算符左側(cè)和右側(cè)的查詢都返回的所有非重復值。3.注意事項(1).使用EXCEPT或INTERSECT比較的結(jié)果集必須具有相同的結(jié)構(gòu)。它們的列數(shù)必須相同,并且相應(yīng)的結(jié)果集列的數(shù)據(jù)類型必須兼容(2).INTERSECT運算符優(yōu)先于EXCEPT(3).SELECTINTO必須是包含INTE
2、RSECT或EXCEPT運算符的語句中的第一個查詢,用來創(chuàng)建容納最終結(jié)果集的表(4).ORDERBY子句中的列名或別名必須引用左側(cè)查詢返回的列名4.例題:--建立3個表,分別插入數(shù)據(jù)createtableTableA(col1int)insertintoTableAselect1insertintoTableAselect1insertintoTableAselect2insertintoTableAselect3insertintoTableAselect4insertintoTableAselect4insertintoTableAse
3、lect5insertintoTableAselectnullinsertintoTableAselectnullcreatetableTableB(col2int)insertintoTableBselectnullinsertintoTableBselect14insertintoTableBselect2insertintoTableBselect3createtableTableC(col3int)insertintoTableCselect1insertintoTableCselect5insertintoTableCselect
4、6--利用EXCEPT--找出TableA表的col1列不存在Tablec表col1列的所有非重復值SELECTcol1FROMTableAEXCEPTSELECTcol3FROMTablec結(jié)果如下:col1-----------NULL234--sql2000的版本,用notexists實現(xiàn)EXCEPT的功能SELECTcol1FROMTableAasawherenotexists(SELECTcol3FROMTablecwherea.col1=col3)groupbycol1--sql2000,notin是得不到上述結(jié)果的--空值表示
5、值未知??罩挡煌诳瞻谆蛄阒?。沒有兩個相等的空值。--比較兩個空值或?qū)⒖罩蹬c任何其他值相比均返回未知,這是因為每個空值均為未知。--使用IN或NOTIN比較后返回的所有空值都將返回UNKNOWN。--將空值與IN或NOTIN一起使用會產(chǎn)生意外結(jié)果。SELECTcol1FROMTableAwherecol1notin(SELECTcol3FROMTablec)4groupbycol1結(jié)果如下:col1-----------234--INTERSECT運算符優(yōu)先于EXCEPT--運算步驟是:先運算TableB和TableC的INTERSECT,
6、再和TableA運算EXCEPTSELECTcol1FROMTableAEXCEPTSELECTcol2FROMTableBINTERSECTSELECTcol3FROMTableC結(jié)果如下:col1-----------NULL2345--SELECTINTO的應(yīng)用--SELECTINTO必須是語句中的第一個查詢--我記得SELECTINTO與UNION運算符的使用也是這樣的規(guī)則SELECTcol1into#temFROMTableAEXCEPTSELECTcol3FROMTablecselect*from#tem4droptable#t
7、em結(jié)果如下:col1-----------NULL234--ORDERBY子句--ORDERBY子句中的列名或別名必須引用左側(cè)查詢返回的列名SELECTcol1FROMTableAINTERSECTSELECTcol3FROMTableCorderbycol1結(jié)果如下:col1-----------154