2016-11-29 84 views
1

我有一個SQL查詢是三個查詢的結合,例如:的Sql排序查詢

query1 
Union 
query2 
Union 
query3 

我想問一下,如果有一種方法可以使輸出通過查詢相應的,使得query1的結果首先在結果集中,query2在結尾,第二個和query3。

謝謝

+1

添加示例數據和預期輸出 –

回答

4

通常,你可以包括一列由指定查詢和訂購做到這一點:

select . . . 
from ((select q.*, 1 as ordering from (<query1>) q) union all 
     (select q.*, 2 as ordering from (<query2>) q) union all 
     (select q.*, 3 as ordering from (<query3>) q) 
    ) q 
order by ordering; 

注:這將替換unionunion all,所以副本不會被刪除。

+0

每個查詢來自不同的表並且具有不同的聯接,我如何將這個應用到我的查詢中? –

+0

@AbdallaIsmail。 。 。把你的查詢放在''的地方。或者,使用CTE使代碼更易於閱讀。 –

+0

感謝您的幫助,但是在結果中有一個名爲排序的附加列,我該如何刪除它? –