упорядочить по конкретному значению в столбце, а затем - в алфавитном порядке, остальные в том же столбце - PullRequest
5 голосов
/ 19 января 2012

Имеется простой запрос select * from myTable, а столбец с именем Fruits

Fruits содержит следующие данные:

Apple
Pear
Peach
Plum
Grape

Я всегда хочу сначала Grape, а затемОстальные по порядку, чтобы результат был

Grape
Apple
Peach
Pear
Plum

Как всегда, спасибо за помощь!

Ответы [ 3 ]

7 голосов
/ 19 января 2012

Я бы попробовал что-то вроде этого:

DECLARE @myTable TABLE([Fruits] VARCHAR(20))
INSERT INTO @myTable VALUES('Apple')
INSERT INTO @myTable VALUES('Pear')
INSERT INTO @myTable VALUES('Peach')
INSERT INTO @myTable VALUES('Plum')
INSERT INTO @myTable VALUES('Grape')

SELECT * 
FROM @myTable
ORDER BY
    CASE WHEN([Fruits] = 'Grape') THEN 0 ELSE 1 END,
    [Fruits]

В ORDER BY вы присваиваете значение, когда поле [Fruits] равно Grape, поэтому вы можете сначала отсортировать по нему, а затем выполнить вторичную сортировку по полю [Fruits].

3 голосов
/ 19 января 2012
select * from myTable
order by
     case when Fruits = 'Grape' then 0 else 1 end,
     Fruits
2 голосов
/ 19 января 2012

Добавьте порядковый столбец в таблицу «Фрукты» и присвойте Виноградному наименьшему порядковому номеру (1), а остальным фруктам - другое значение (2 будет работать хорошо).а потом название плода.Это поместит Виноград на вершину, а затем остальные внизу в Альфа-порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...