2013-08-08 2 views
0

У меня есть простой запрос, но я хотел бы видеть результаты определенным образом. Я хотел бы видеть 'N/A' в верхней части результата, без того, чтобы привести к "случай, когда Тогда"Как заказать свой результат определенным образом в SQL Server

Select * 
From Ordertype 

Результаты:

Car21 
Car34 
Bus42 
N/A 

Спасибо,

+0

Могли вы делитесь дополнительной информацией, как ваш дизайн стола! –

+0

У вас есть ключ, связанный со значениями, которые вы можете заказать? Кстати, почему вы не можете использовать «Case When Then»? – Magnus

+1

Как вы ожидаете, что этот результат будет стабильным даже сейчас, когда у вас вообще нет 'ORDER BY'? Повторите за мной: стол - это мешок с рядами. Когда вы выберете из таблицы, он может выйти в любом порядке, если вы не укажете заказ с помощью 'ORDER BY'. –

ответ

1

Если вы хотите произвольный порядок, который не привязан непосредственно для структурированного столбца (по алфавиту/числовому), а скорее к его важности, которую только вы знаете в своей голове, может быть полезно добавить столбец Rank в таблицу.

Column1 Rank 
Car21 
Car34 2 
Bus42 1 
N/A  99 

, то вы можете сделать

select Column1 
from Table 
order by rank desc, column1 

это поставит высоко ранжированные пункты первые затем низко ранжированных элементы, а затем, когда строки не имеют ранг будет сортировать их в алфавитном порядке по COLUMN1

0

You можете попробовать это:

SELECT * FROM ordertype ORDER BY ID DESC 

, чтобы увидеть новейшие из них 1-й

2

Там нет «переопределение» для ORDER BY, если вы хотите, чтобы конкретный заказ вы просите, вы должны будете использовать CASE:

SELECT type 
FROM OrderType 
ORDER BY 
CASE 
    WHEN type = 'N/A' THEN 1 
    ELSE 2 
END 
,type 
Смежные вопросы