ORACLE SQL的EXCEPT、INTERSECT用法
EXCEPT 返回兩個結果集的差(即從左查詢中返回右查詢沒有找到的所有非重複值)。
INTERSECT 返回 兩個結果集的交集(即兩個查詢都返回的所有非重複值)。
限制條件
- (1)所有查詢中的列數和列的順序必須相同。
- (2)比較的兩個查詢結果集中的列資料型別可以不同但必須相容。
- (3)比較的兩個查詢結果集中不能包含不可比較的資料型別(xml、text、ntext、image 或非二進位制 CLR 使用者定義型別)的列。
- (4)返回的結果集的列名與運算元左側的查詢返回的列名相同。ORDER BY 子句中的列名或別名必須引用左側查詢返回的列名。
- (5)不能與 COMPUTE 和 COMPUTE BY 子句一起使用。
- (6)透過比較行來確定非重複值時,兩個 NULL 值被視為相等。(EXCEPT 或 INTERSECT 返回的結果集中的任何列的為空性與運算元左側的查詢返回的對應列的為空性相同。)
舉例:
Table A Table B
NULL | NULL |
NULL | 2 |
1 | 3 |
1 | 4 |
2 | 5 |
3 | 5 |
4 | |
5 |
A:(SELECT * FROM TableA) EXCEPT (SELECT * FROM TableB)
結果: 1
(1 row(s) affected)
B: SELECT * FROM TableA INTERSECT SELECT * FROM TableB
結果:2
3
4
5
(4 row(s) affected)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2063625/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server中的集合運算: UNION, EXCEPT和INTERSECTSQLServer
- 探討 T-SQL 的 EXISTS、EXCEPT、INTERSECT 算符SQL
- ORACLE中union/union all/Intersect/Minus用法Oracle
- python-try-except:pass的用法Python
- 【SQL 學習】INTERSECT,MINUS ,SQL
- Oracle set unused的用法.sqlOracleSQL
- Oracle sql trace用法OracleSQL
- PTSQLServer中exists和except用法介紹wkaSQLServer
- Oracle中的Union、Union All、Intersect、MinusOracle
- 【SQL查詢】集合查詢之INTERSECTSQL
- Oracle PL/SQL中EXCEPTION用法OracleSQLException
- SQL AS 的用法SQL
- 【SQL】Oracle查詢轉換之 OR用法SQLOracle
- Oracle的集合操作(union、union all、intersect、minus集合函式)Oracle函式
- Oracle 中Union、Union All、Intersect、Minus(並,交,差)Oracle
- SQL 中With as 的用法SQL
- 【SQL】SELECT語句中集合運算子 UNION/INTERSECT/MINUSSQL
- sql_intersect交集_minus差集_並集union_union allSQL
- SQL語句IN的用法SQL
- sql語句中as的用法SQL
- SQL 語句 as 的用法SQL
- 很全的sql用法SQL
- sql devloper 用法的和SQL 編寫SQLdev
- apart from,besides,except和except for有什麼區別?IDE
- sql server with ...as 用法SQLServer
- sql用法——group bySQL
- SQL——STUFF用法SQL
- Oracle Hints的用法Oracle
- oracle job的用法Oracle
- Oracle keep的用法Oracle
- Oracle Analyze的用法Oracle
- Oracle中with的用法Oracle
- Oracle Hint的用法Oracle
- SQL中的遞迴用法SQL遞迴
- SQL中Merge的用法SQL
- SQL Server中@@ROWCOUNT的用法SQLServer
- sql server merge 的用法SQLServer
- SQL Server中distinct的用法SQLServer