Реализовать частично отсортированный запрос в SQL Server 2005 - PullRequest
5 голосов
/ 23 марта 2010

Я должен показывать записи таким образом, чтобы некоторые выбранные записи были на первом месте.После этого другие записи поступают отсортированным образом из той же таблицы.

Например, если я выбираю состояние, имеющее stateID = 5, то соответствующая запись должна стоять первой.после этого другие записи должны поступить в отсортированном виде.

Для этого я попробовал объединение, но он показывает все в отсортированном виде.

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

Спасибо

Ответы [ 2 ]

7 голосов
/ 23 марта 2010

Этот будет использовать CASE, чтобы дать вам состояния с stateid = 5 сначала, а затем остальные. Вторым критерием сортировки является state.

Select state
From statemaster
Order By
  Case When stateid = 5 Then 0 Else 1 End,
  state
0 голосов
/ 23 марта 2010

Это будет полезно, если у вас более 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...