SQL語句中 UNION與UNION ALL的區別

2022-03-17 15:29:30 字數 1056 閱讀 1984

有些人看到題目,瞬間覺得樓主也太弱了吧,這種問題也要拿出來寫,這種問題 隨便會點sql 的人基本都會 

union   是會刪除冗餘資料

union all 不會刪除冗餘資料 將所有的結果都展現給使用者

好吧,這是二者的主要差別,對於一般人來說,知道這個也就足夠了。如果較真的話,其實裡邊有很多細節,比如union 如果刪除冗餘資料的話,那麼請問最後保留的展示的資料時**於未刪除冗餘的結果集中的第一條還是最後一條還是中間某一條。好吧,其實這個我也不清楚,不過感覺用處不大,此處忽略。

此處 我只是寫下我在嘗試的時候,發現的一些細節:

首先union 會合併上邊查詢的所有結果集 和接下來的第乙個結果集中的 重複資料

如(1)

select 1 as a 

union  all

select 1 as a 

union  all

select 2 as a

union

select 1 as a 

則只會顯示a1

2(2)

select 1 as a 

union  all

select 1 as a 

union  all

select 2 as a

union

select 1 as a 

union  all

select 1 as a

如這一段** 

結果會顯示a1

21為啥沒有合併結果集呢  有兩個1 呢, 因為按照執行順序   最後一條的 select 1 as a 是不會被union作用到的  所以不會被篩選掉

而如果這樣

(3)select 1 as a 

union  all

select 1 as a 

union  all

select 2 as a

union

(select 1 as a 

union  all

select 1 as a)

結果就為a1

2就會顯示和(1)中一樣的結果了

SQL語句中 UNION與UNION ALL的區別

union用的比較多union all是直接連線,取到得是所有值,記錄可能有重複 union 是取唯一值,記錄沒有重複 1 union 的語法如下 sql 語句 1 union sql 語句 2 2 union all 的語法如下 sql 語句 1 union all sql 語句 2 效率 uni...

SQL語句中 UNION與UNION ALL的區別

union用的比較多 union all是直接連線,取到得是所有值,記錄可能有重複 union 是取唯一值,記錄沒有重複 1 union 的語法如下 sql 語句 1 union sql 語句 2 2 union all 的語法如下 sql 語句 1 union all sql 語句 2 效率 un...

SQL語句中 UNION與UNION ALL的區別

union用的比較多union all是直接連線,取到得是所有值,記錄可能有重複 union 是取唯一值,記錄沒有重複 1 union 的語法如下 sql 語句 1 union sql 語句 2 2 union all 的語法如下 sql 語句 1 union all sql 語句 2 效率 uni...