Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 NULL при сортировке  [new]
BagaBaga
Member

Откуда: прекрасное далеко
Сообщений: 667
как принудительно изменить порядок NULL-значений при сортировке (т.е. NULL - после всех)
13 июн 07, 15:29    [4262364]     Ответить | Цитировать Сообщить модератору
 Re: NULL при сортировке  [new]
TORT
Member

Откуда:
Сообщений: 1095
Coalesce() подобрать может...
13 июн 07, 15:40    [4262464]     Ответить | Цитировать Сообщить модератору
 Re: NULL при сортировке  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4947
select col
from tab
order by case when col is null then 0 else 1 end, col
13 июн 07, 15:43    [4262499]     Ответить | Цитировать Сообщить модератору
 Re: NULL при сортировке  [new]
RomanSavelyev
Member

Откуда:
Сообщений: 90
BagaBaga
как принудительно изменить порядок NULL-значений при сортировке (т.е. NULL - после всех)

select coalesce(mycharcolumn,'ZZERO') as mycol
order by my mycol
если поле алфавитноцифровое, NULL будет подменен на константу "ZZERO"
Для числовых полей - вбейте соотв. "граничное" значение в аргумент COALESCE
13 июн 07, 17:54    [4263623]     Ответить | Цитировать Сообщить модератору
 Re: NULL при сортировке  [new]
RomanSavelyev
Member

Откуда:
Сообщений: 90
BagaBaga
как принудительно изменить порядок NULL-значений при сортировке (т.е. NULL - после всех)

прошу прощения, вчера что-то протормозил.
Решение есть. OLAP-функция ROW_NUMBER.

Допустим, ваше поле с NULL зовётся "fld".
select row_number over(order by fld asc nulls last) as sortnum, fld
from sometable
Поле "sortnum" результирующей таблицы примет значения согласно следованию "fld", причём NULL - в хвосте списка.
если добавите
order by sortnum
- последовательность будет "та самая".
14 июн 07, 17:47    [4268699]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить