Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Order By  [new]
VIT2708
Member [заблокирован]

Откуда: Киев
Сообщений: 1387
Подскажите как можна решить проблему.

Есть данные

id, user, callback
1 Иванов 22.03.2014 10:00
2 Сидоров
3 Петров 22.03.2014 12:00
4 Пупкин 22.03.2014 15:30


Подскажите как отсортировать что бы даты шли по возрастанию и не учитывались пустышки

select id, user, callback from Test order by callback asc


Нужный результат

Иванов 22.03.2014 10:00
Петров 22.03.2014 12:00
Пупкин 22.03.2014 15:30
Сидоров

Спасибо.
21 мар 14, 12:12    [15765237]     Ответить | Цитировать Сообщить модератору
 Re: Order By  [new]
angel_zar
Member

Откуда: Барнаул
Сообщений: 902
case ???
21 мар 14, 12:21    [15765338]     Ответить | Цитировать Сообщить модератору
 Re: Order By  [new]
o-o
Guest
declare @t table(id int, [user] nvarchar(50), callback datetime)
insert into @t values 
(1, N'Иванов', '20140322 10:00:00'),
(2, N'Сидоров', null),
(3, N'Петров', '20140322 12:00:00'),
(4, N'Пупкин', '20140322 15:30:00')

select id, [user], callback from @t order by isnull(callback, '99990101') asc
21 мар 14, 12:22    [15765345]     Ответить | Цитировать Сообщить модератору
 Re: Order By  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
ORDER BY CASE WHEN callback IS NOT NULL THEN '' END DESC, callback
21 мар 14, 12:26    [15765389]     Ответить | Цитировать Сообщить модератору
 Re: Order By  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8839
set dateformat dmy
declare @test table (id int, [user] char(10), callback char(16)) 
insert into @test values (1, 'qwe', '22.03.2014 10:00')
insert into @test values (2, 'qwe', '')
insert into @test values (3, 'qwe', '22.03.2014 12:00')

select id, user, callback from @test order by iif(callback='',1,0) asc, cast(callback as datetime) asc
21 мар 14, 12:39    [15765504]     Ответить | Цитировать Сообщить модератору
 Re: Order By  [new]
VIT2708
Member [заблокирован]

Откуда: Киев
Сообщений: 1387
Владислав Колосов,

спасибо всем
21 мар 14, 12:43    [15765528]     Ответить | Цитировать Сообщить модератору
 Re: Order By  [new]
invm
Member

Откуда: Москва
Сообщений: 9845
order by
 datediff(day, callback, '1900') desc;
21 мар 14, 12:51    [15765601]     Ответить | Цитировать Сообщить модератору
 Re: Order By  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
invm
order by
 datediff(day, callback, '1900') desc;
А там время, между прочим, есть!
Да и требуется возрастание по времени, чтобы NULLы в конце были, насколько я понял.
21 мар 14, 12:54    [15765637]     Ответить | Цитировать Сообщить модератору
 Re: Order By  [new]
invm
Member

Откуда: Москва
Сообщений: 9845
iap
А там время, между прочим, есть!
Ну заменить day на second и базовую дату приблизить к настоящему времени.
iap
Да и требуется возрастание по времени, чтобы NULLы в конце были
Будет возрастать и null будет в конце.
21 мар 14, 13:08    [15765801]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить