SQL語句中:UNION與UNION ALL的區別
UNION用的比較多union all是直接連接,取到得是所有值,記錄可能有重復 union 是取唯一值,記錄沒有重復 1、UNION 的語法如下:
[SQL 語句 1]
UNION
[SQL 語句 2]
2、UNION ALL 的語法如下:
[SQL 語句 1]
UNION ALL
[SQL 語句 2]
效率:
UNION和UNION ALL關鍵字都是將兩個結果集合并為一個,但這兩者從使用和效率上來說都有所不同。
1、對重復結果的處理:UNION在進行表鏈接后會篩選掉重復的記錄,Union All不會去除重復記錄。
2、對排序的處理:Union將會按照字段的順序進行排序;UNION ALL只是簡單的將兩個結果合并后就返回。
從效率上說,UNION ALL 要比UNION快很多,所以,如果可以確認合并的兩個結果集中不包含重復數據且不需要排序時的話,那么就使用UNION ALL。
sql語句中union關鍵字的意義和用法
將兩個或更多查詢的結果組合為單個結果集,該結果集包含聯合查詢中的所有查詢的全部行。這與使用聯接組合兩個表中的列不同。
使用 UNION 組合兩個查詢的結果集的兩個基本規則是:
1.所有查詢中的列數和列的順序必須相同。
2.數據類型必須兼容
假設有以下兩個表(也可以是查詢出來的結果集)
表1 表2
字段1 字段2 字段3 字段1 字段2 字段3
0000 1000 2000 2000 3333 4444
0001 1001 2001 2001 5555 6666
那么這兩個結果集用union 合并后就是以下結果:
字段1 字段2 字段3
0000 1000 2000
0001 1001 2001
2000 3333 4444
2001 5555 6666
語句可以寫成
select 字段1,字段2,字段3 From 表1 union select 字段1,字段2,字段3 From 表2
為了看起來清楚,我習慣與換行來寫這句代碼,
select 字段1,字段2,字段3 From 表1
union
select 字段1,字段2,字段3 From 表2
就這樣!
sql語句里面的”union”是什么意思
UNION 操作符用于合并兩個或多個 SELECT 語句的結果集。
請注意,UNION 內部的 SELECT 語句必須擁有相同數量的列。列也必須擁有相似的數據類型。同時,每條 SELECT 語句中的列的順序必須相同。
SQL UNION 語法SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
SQL語句基礎學習UNIONALL是怎樣的
UNION ALL 這個指令的目的也是要將兩個 SQL 語句的結果合并在一起。
UNION ALL 和 UNION 不同之處在于 UNION ALL 會將每一筆符合條件的資料都列出來,無論資料值有無重復。 UNION ALL 的語法如下: [SQL 語句 1] UNION ALL [SQL 語句 2] 我們用和上一頁同樣的例子來顯示出 UNION ALL 和 UNION 的不同。
同樣假設我們有以下兩個表格 Store_Information 表格 store_namesalesdate Los Angeles$1500jan-05-1999 San Francisco$300jan-08-1999 Boston$700jan-08-1999 Internet Sales 表格 DateSales Jan-07-1999$250 Jan-10-1999$535 Jan-11-1999$320 Jan-12-1999$750 而我們要找出有店面營業額以及網絡營業額的日子。 要達到這個目的,我們用以下的 SQL 語句: SELECT Date FROM Store_Information UNION ALL SELECT Date FROM Internet_Sales 結果: Date Jan-05-1999 Jan-07-1999 Jan-08-1999 Jan-08-1999 Jan-07-1999 Jan-10-1999 Jan-11-1999 Jan-12-1999。
SQL語句中UNION排序問題
代碼改寫如下:
select a.輸出字段1, a.輸出字段2, a.輸出字段3, 。a.輸出字段n from
(select * ,1 as px from 表A where 軟件名稱 like '%迅雷%'
union
select * ,2 from 表A where 軟件簡介 like '%迅雷%') a order by *
如果不在意多出一個用于排序的字段“px”的話,代碼可簡化如下
select * ,1 as px from 表A where 軟件名稱 like '%迅雷%' order by 1
union
select * ,2 from 表A where 軟件簡介 like '%迅雷%'
***注意,因人為增加了一個排序用數字字段(第一個查詢用1,第二個用2),UNION關鍵字的刪除兩個查詢之間重復數據的功能會不起作用,如果需要保持刪除重復記錄的能力,則需要使用DISTINC關鍵字,例如:
select distinct a.輸出字段1, a.輸出字段2, a.輸出字段3, 。a.輸出字段n from
(select * ,1 as px from 表A where 軟件名稱 like '%迅雷%'
union
select * ,2 from 表A where 軟件簡介 like '%迅雷%') a order by *
上機試一試吧
轉載請注明出處華閱文章網 » sql語句union