Oracle Union Union All Intersect Minus 4種對查詢結果集操作
阿新 • • 發佈:2018-12-06
Oracle Union Union All 對查詢結果集操作
在Oracle中提供了三種類型的集合操作: 並(UNION)、交(INTERSECT)、差(MINUS)
Union:對兩個結果集進行並集操作,不包括重複行,同時進行預設規則的排序;
Union All:對兩個結果集進行並集操作,包括重複行,不進行排序;
Intersect:對兩個結果集進行交集操作,不包括重複行,同時進行預設規則的排序;
Minus:對兩個結果集進行差操作,不包括重複行,同時進行預設規則的排序。
可以在最後一個結果集中指定Order by子句改變排序方式。
--測試表A中的記錄見下 select * from TestA;
--對兩個結果集進行並集操作,不包括重複行 select * from TestA where id<3 union select * from TestA where id<6;
--對兩個結果集進行並集操作,包括重複行行 select * from TestA where id<3 union all select * from TestA where id<6;
--對兩個結果集進行交集操作,不包括重複行 select * from TestA where id<3 intersect select * from TestA where id<6;
--對兩個結果集進行差操作(前面的結果集減去後面的),不包括重複行 select * from TestA where id<6 minus select * from TestA where id<3;
--對三個結果集進行取並集操作(取到的結果是從左到右依次的值不進行排序)在最後進行order by 操作 select * from (select * from TestA where id>5 union all select * from TestA where id<3 union all select * from TestA where id<2) order by id asc;
select * from (select * from TestA where id>5 union all select * from TestA where id<3 union all select * from TestA where id<2) order by id desc;