sql中UNION和UNION ALL的用法


前言

在寫SQL的時候。偶爾會用到兩個表的數據結合在一起返回的,就需要用到UNION 和 UNION ALL,有的時候有些數據的存儲可能涉及到分庫分表,查詢的時候,可能需要查詢所有的分表,這個時候,也需要用到UNION或者UNION AL。

正文

union操作符:用於合並兩個或多個SELECT語句的結果集,這里需要注意的是:UNION內部的SELECT語句必須擁有相同數量的列,列也必須擁有相似的數據類型,同時,每條SELECT語句中列的順序必須相同。

並且需要注意的是:UNION和UNION ALL連接的語句,算是一個sql,只能有一個order by 語句,如果你需要兩個sql都進行排序之后合並在一起,就需要使用子查詢,將查詢的語句再次查詢一遍,然后進行合並!!

SELECT name FROM user UNION  SELECT name FROM user1 //得到的結果就是:分別從user表和user1表中查詢name字段,然后合並到一起。

需要特別注意的是:union操作符合並的結果集,不允許重復,如果不要去重的話,需要使用union all。

案例如下:

SELECT * FROM 
(
SELECT top 1 left(convert(varchar(100),RECEIVE_TIME,108 ),5) receiveTime, '0' restoreTime,unit_code,unit_name FROM T_FILE_RECEIVE_RECORD WHERE UNIT_CODE = '123123' and convert(char(100),RECEIVE_TIME,23)='2018-10-06' ORDER BY RECEIVE_TIME DESC ) table1 UNION ALL SELECT * FROM
(SELECT top 1 '0' receiveTime, left(convert(varchar(100),RESTORE_TIME,108 ),5) restoreTime,unit_code,unit_name FROM T_FILE_RESTORE_RECORD WHERE UNIT_CODE = '123123' and convert(char(100),restore_time,23)='2018-10-06' ORDER BY restore_time DESC
) table2

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM