程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL查詢的Union和Union All用法

SQL查詢的Union和Union All用法

編輯:關於SqlServer
SQL Union和SQL Union All用法詳解

Union


UNION 指令的目的是將兩個 SQL 語句的結果合並起來。從這個角度來看, UNION 跟 JOIN 有些許類似,因為這兩個指令都可以由多個表格中撷取資料。 UNION 的一個限制是兩個 SQL 語句所產生的欄位需要是同樣的資料種類。另外,當我們用 UNION這個指令時,我們只會看到不同的資料值 (類似 Select DISTINCT)。 union只是將兩個結果聯結起來一起顯示,並不是聯結兩個表………… UNION 的語法如下:

 [SQL 語句 1]
UNION
[SQL 語句 2]



Union All


UNION ALL 這個指令的目的也是要將兩個 SQL 語句的結果合並在一起。 UNION ALL 和 UNION 不同之處在於 UNION ALL 會將每一筆符合條件的資料都列出來,無論資料值有無重復。 UNION ALL 的語法如下:

[SQL 語句 1]
UNION ALL
[SQL 語句 2]



現在以實例來說明SQL Union的用法:(SQL Union All的用法是一樣的。只是SQL Union All不會考慮記錄是否有重復。)
比如:在一個會員表Users中有會員類型有兩種,一種為VIP會員,另一種為普通會員,為VIP會員的在VIP字段中為yes,普通會員的在VIP字段為no。
要在前台顯示10筆會員記錄,其中五個最早注冊的VIP會員和五個最早注冊的普通會員,最早注冊的VIP要排在最早注冊的普通會員的前面。
SQL語句如下:

程序代碼

select top 10 * from (select top 5 * from users where vip="yes" order by id desc

union select top 5 * from users where vip="no" order by id desc) as users

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved