有些人看到題目,瞬間覺得樓主也太弱了吧,這種問題也要拿出來寫,這種問題 隨便會點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...