UNION並集運算

2021-09-06 17:10:21 字數 1239 閱讀 1084

在集合論中,兩個集合(集合a和集合b)的並集是乙個包含集合a和b中所有元素的集合。換句話說,如果乙個元素屬於任何乙個輸入集合,那麼它也屬於結果集。如圖所示。

對於集合運算,需要注意以下幾點:

參與集合運算的兩個查詢生成的結果集必須包含相同的列數,並且相應列必須具有相容的資料型別。

集合運算結果中的列名由第乙個查詢決定,因此,如果要為結果列分配別名,應該在第乙個查詢中分配相應的別名。

集合運算對行進行比較時,認為兩個null值相等。

union集合運算分為union all和union distinct兩種情形,它們的區別是union all會保留重複行,而union distinct會刪除重複行。下面用例子來說明。

union all合併兩個集合,並保留重複行。關於union all需要注意以下幾點:

union all實際上不會對行進行比較,也不會刪除重複行,它只是做個合併的操作而已。

因為union all不會刪除重複行,所以它的結果是多集,而不是真正的集合,因為相同的行在結果中可能出現多次。

例如。sql查詢**:

use

tsqlfundamentals2008;

go--

union all合併兩個集合,並保留重複行

select country,region,city from

hr.employees

union

allselect country,region,city from sales.customers

查詢結果:

union distinct會合併兩個集合,但是它會刪除重複行。對於union distinct需要注意以下幾點:

從處理過程來看,union distinct先合併多個集合為多集,再刪除重複行變成集合。

從運算結果來看,union distinct是乙個真正的集合,而不是多集。

例如。sql查詢**:

use

tsqlfundamentals2008;

go--

union(隱含distinct)合併兩個集合,但會刪除重複行

select country,region,city from

hr.employees

union

select country,region,city from sales.customers

查詢結果:

注意:比上面的查詢少了29條記錄,當然這些記錄都是因為重複行被刪除了。

List 交集 並集 差集運算

有時候,為了需求,需要統計兩個 list 之間的交集,並集,差集。查詢了一些資料,現在總結在下面 1.獲取兩個list 的交集 方法一 a 2,3,4,5 b 2,5,8 tmp val for val in a if val in b print tmp 2,5 方法二 print list se...

Oracle的並集,交集,差集運算

1 表運算 結構相同 列名 列型別 不限長度 的一列或多列 a 並集運算 union b 交集運算 intersect 並集和交集運算結果,與先後順序無關 c 差集運算 minus i.a b ii.b a 1 複製表結構 複製表追加主鍵約束 更新一行記錄 create table b as sel...

並查集運用

來點心得體會吧!intfind int x voidmerger int a,int b if r1 r2 fa r2 r1 else if r1 fa r1 r2 此處兩者的區別在於後者可以使得在整個家族裡邊的人都以最大 或最小,只要改下大於號和小於號即可 的為祖先 比如 1,2,3,4,5,6,...