在sql server 2005中实现部分排序查询

时间:2010-03-23 08:18:50

标签: sql sql-server sorting

我必须以某种方式显示记录,以便首先选择一些选定的记录。在此之后,另一条记录从同一个表格中排序。

例如,如果我选择stateID = 5的状态,那么相应的记录应该首先出现。在此之后,另一个记录应该按照排序的方式进行。

为此,我尝试了联盟,但它显示了所有的排序。

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

由于

2 个答案:

答案 0 :(得分:7)

这个会先使用CASE为您提供stateid = 5的状态,然后是其他状态。第二个排序标准是state

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

答案 1 :(得分: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