2013-11-11 4 views
2

У меня есть таблица со значениями, и я стараюсь выбирать все, кроме шоу в другом порядке.SQL-Select * From Table Order By

я не хочу, чтобы добавить еще один столбец, чтобы определить порядок отображения,

, как я могу это сделать ..

я прочитал об использовании дела.

но у меня нет успеха, надеюсь, что кто-то может помочь с этим.

вот мой пытается код:

Моя таблица выглядит следующим образом:

1 -- a 
2 -- b 
3 -- bgin 
4 -- mid 
5 -- c 
6 -- d 

и я мой результат я хотел бы иметь в этом:

1 -- bgin 
2 -- a 
3 -- b 
4 -- c 
5 -- d 
6 -- mid 


Select Name From tbl 
GROUP BY Name 
ORDER BY 
CASE WHEN Name = 'Bgin' THEN 0 END, Name, 
CASE WHEN Name= 'Mid' THEN 5 END, Name 
+0

Что вы * действительно * пытаетесь сделать? Почему bgin должен появляться сверху, а не внизу или в любом другом месте? Существуют ли какие-либо критерии, определяющие этот порядок? –

+0

Это не сработает. Может быть, вы могли бы использовать оператор case для получения расчета, которое вы могли бы отсортировать? Не говоря уже о том, какая логика управляет этим порядком сортировки? – Andrew

+1

@Andrew: вы очень можете использовать оператор case в ORDER BY, хотя OP не сделал это правильно. – siride

ответ

4

Попробуйте это:

Select Name From tbl 
GROUP BY Name 
ORDER BY 
CASE WHEN Name = 'Bgin' THEN 0 
    WHEN Name = 'Mid' THEN 5 
    WHEN Name <> 'Mid' AND Name <> 'Bgin' THEN 1 END, Name 

sqlfiddle demo

+0

Да .... Спасибо большое за вашу помощь – user2232273

+0

:) Рад помочь. –