2010-03-23 63 views
4

我必須以某種選定記錄應該優先的方式顯示記錄。在此之後,另一個記錄以相同表格的排序方式出現。在sql server 2005中實現部分排序的查詢

例如,如果我選擇狀態ID = 5的狀態,那麼相應的記錄應該優先。在這之後另外的記錄應該以排序的方式出現。

爲此,我嘗試了聯合,但它顯示所有排序。

select state from statemaster where stateid=5 
union all 
select state from statemaster 
where not stateid =5 
order by state 

感謝

回答

5

這人會用CASE給你stateid = 5第一,其次是休息的狀態。第二個分類標準是state

Select state 
From statemaster 
Order By 
    Case When stateid = 5 Then 0 Else 1 End, 
    state 
+1

+1這將是有益的。甚至不知道這是可能的。尼斯新的竅門放進我的包裏。 – 2010-03-23 09:08:06

+1

我同意你的意見。這是一個很好的答案。 – 2010-03-23 09:31:19

+0

真的很棘手的答案 – Brij 2010-03-23 09:35:12

0

,如果你有2名以上的工會

select 1 as sort_id, state from statemaster where stateid=5 
union all 
select 2 as sort_id, state from statemaster 
where stateid between 1 and 4 
union all 
select 3 as sort_id, state from statemaster 
where stateid > 5 
order by sort_id, state