Сортировка по возрастанию - NULL не страшен

добавлено: 28 авг 11
понравилось:0
просмотров: 4797
комментов: 0

теги:

Автор: Николай Байбородин

В SQL Server условие ORDER BY используется для сортировки результирующего набора по одной или группе колонок. Если вы зададите условие ORDER BY col ASC, то в самом верху выборки окажутся строки со значением NULL. Если вместо этого указать ORDER BY col DESC, то все NULLы окажутся в конце списка, но и все остальные значения тоже будут осортированы соответствующим образом.
Но, как быть, если нужно отсортировать значения по возрастанию, и в то же время, равместить строки со значением NULL в конце списка? Оказывается, и такое возможно...
Допустим, у нас есть следующая таблица:

declare @t table(number int)
insert into @t
select 1502 union all
select 734 union all
select 623 union all
select null union all
select 1990

А теперь попробуем выполнить следующий запрос:

select number from @t
order by case when number is null then 1 else 0 end, number

и полюбуемся на полученный результат

Картинка с другого сайта.

Комментарии




Необходимо войти на сайт, чтобы оставлять комментарии