2013-07-30 92 views
1

我目前有12個相當簡單的SQL查詢,這些查詢用於拉取符合不同條件的數據,以創建顯示接收到的支持電子郵件的優先順序的狀態頁面。多個查詢來填充一個數據表

不過,我需要做的是有一個顯示以下一個DataTable:

Col1 | Col2 | Col3 | Col4 
    Data from SQL Query 1 
.... | .... | .... | .... 
.... | .... | .... | .... 
    Data from SQL Query 2 
.... | .... | .... | .... 
.... | .... | .... | .... 
    Data from SQL Query 3 
.... | .... | .... | .... 
.... | .... | .... | .... 
       etc 

因此,每個查詢運行,然後添加到數據表的數據之前的查詢後(不排序發生,並且按照每個SQL查詢返回的順序添加所有行)。

我已經嘗試使用SQL UNION語句將所有SQL查詢組合在一起,但返回的結果在所有行中按ID排序,這不是我想要的。

回答

3

除了您特別指定的數據之外,數據沒有任何ORDER。如果您想以特定方式訂購數據,請將其添加到您的查詢中。

如果你想從查詢1的行,再增加一列,表明您的查詢

select 1 as priority, field1, field2 from ... 
union 
select 2 as priority, field1, field2 from ... 
order by priority 
+1

他可能想用'UNION ALL',因爲查詢是獨立的開始。 –

+0

@JoachimIsaksson有效的考慮,但優先級列將讓所有的子查詢返回不同的結果 – podiluska

+0

是的,結果將是正確的,但UNION(除非優化器是智能)做額外的工作來讓事情變得不同,當他們已經是。 –