我想知道的是,你能不能把兩個查詢,在一個結果集中有序地表現出來。
因此,在例子中,我們采取了兩個查詢:
Select a.col1, a.col2 from a where a. col3 = 1 Order By A.col2
并且
Select a.col1, a.col2 from a where a. col4 = 0 Order By a col2
我知道在這種情況下,很容易將兩個查詢合并為一個查詢:
Select a.col1, a.col2
from a
where a.col3 = 1 and a. col4 = 0 Order By a col2
但是結果行的順序現在將在第一個和第二個查詢之間混合。
而我正在尋找一種順序,我首先得到所有第一個查詢結果,然后得到所有第二個查詢結果
。另外,我看到你可以通過col3和col4排序來輕松解決這個例子。但我希望你能看到這對許多其他條件來說是無解的。
也許沒有通用的方法,但我不知道所有可以使用的函式,而且我在撰寫查詢命令方面也不是很高級
謝謝。
謝謝你。
uj5u.com熱心網友回復:
你有2個選擇:
你有2個選擇:
你有2個選擇:
你有2個選擇
CASE運算式來按過濾條件排序--當表格相同且條件簡單時,這個方法可行。select a.col1, a.col2
from a
where a.col3 = 1 or a.col4 = 0
順序 由
case when a. col3 = 1 then 1 else 0 end desc
,a.col2。
正如dogyog所指出的,這個where子句應該使用OR而不是AND來結合兩個查詢。
- 使用
UNION ALL。
select a.col1, a.col2, 0QueryNum
from a
where a.col3 = 1
union all
select a.col1, a.col2, 1 QueryNum
from a
where a.col4= 0
order by QueryNum asc, a.col2。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/328415.html
標籤:
