powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Насчет сортировки: это баг или что?
14 сообщений из 14, страница 1 из 1
Насчет сортировки: это баг или что?
    #32037539
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно заставить сортировать данные по дате, а
не по сконвертированному в строку значению
Код: plaintext
1.
2.
3.
4.
5.
6.
set nocount on
declare @t table(date datetime)
insert @t select '20020712'
insert @t select '20020622'

select convert(varchar( 30 ),date, 103 ) date from @t t order by t.date 

у меня не получается (можно конечно сделать другое имя алиаса, но дело принципа)
выдаёт
Код: plaintext
1.
2.
3.
4.
5.
date                           
 ------------------------------ 
 
 12 / 07 / 2002 
 22 / 06 / 2002 

хотя надо бы наоборот
...
Рейтинг: 0 / 0
Насчет сортировки: это баг или что?
    #32037540
Rom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
select convert(varchar( 30 ),date, 103 ) date from @t t order by t.date desc
...
Рейтинг: 0 / 0
Насчет сортировки: это баг или что?
    #32037541
Фотография Hermitap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select convert(varchar(30),date,103) date from @t t order by t.date ASC

нужно наоборот?

select convert(varchar(30),date,103) date from @t t order by t.date DESC
...
Рейтинг: 0 / 0
Насчет сортировки: это баг или что?
    #32037544
Фотография cvasil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
;-)
Просто у тебя имена для колонки в запросе(varchar) и для колонки в таблице(datetime) называются одинаково, и сервер выбирает для сортировки ту, что в запросе.
Вот так нормально получается:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select convert(varchar( 30 ),date, 103 ) date1 from @t t order by t.date

date1                          
 ------------------------------ 
 
 22 / 06 / 2002 
 12 / 07 / 2002 
 
...
Рейтинг: 0 / 0
Насчет сортировки: это баг или что?
    #32037546
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO не получится, т.к. думаю, что в ORDER при совпадении имен алиасов и полей первые просто имеют приоритет.
И это вроде бы как логично - зачем упорядочивать по столбцу, которого нет в result set-е
...
Рейтинг: 0 / 0
Насчет сортировки: это баг или что?
    #32037552
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот если само поле также присутсвует в result set-е то

Код: plaintext
1.
2.
select convert(varchar( 30 ),date, 103 ) date, date from @t t order by t.date
select convert(varchar( 30 ),date, 103 ) date, date from @t t order by date
...
Рейтинг: 0 / 0
Насчет сортировки: это баг или что?
    #32037591
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прикол

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
set nocount on
declare @t table(date datetime)
insert @t select '20020622'  -- !!
 
insert @t select '20020712'  -- !!
 

select convert(varchar( 30 ),date, 103 ) date from @t t order by t.date 
...
Рейтинг: 0 / 0
Насчет сортировки: это баг или что?
    #32037592
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sorry!
Клинит меня чё-то.
...
Рейтинг: 0 / 0
Насчет сортировки: это баг или что?
    #32037596
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изврат, конечно.
Но пашет.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
set nocount on
set dateformat ymd
declare @t table(date datetime)
insert @t select '20020622'
insert @t select '20020712'

select [date] = q1.[date1] from
  (select
    [date1] = convert(varchar( 30 ),t.date, 103 ),
    [date2] = t.date
  from @t t) q1
order by q1.date2
...
Рейтинг: 0 / 0
Насчет сортировки: это баг или что?
    #32037599
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или так...

Код: plaintext
select convert(varchar( 30 ),t.date, 103 ) date from @t t order by convert(binary( 8 ), t.date)
...
Рейтинг: 0 / 0
Насчет сортировки: это баг или что?
    #32037600
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
set dateformat ymd


это бред ессно
...
Рейтинг: 0 / 0
Насчет сортировки: это баг или что?
    #32037607
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тут сижу пьяный в драбадан,
но корректное упот-т-т-требление даты всегда и везде, делает только формат "112".
====================
Эй, там, на кухне, мы будем наливать, или только глазки строить? Упал, поднялся. Леха, не тычь в меня сосиской.
====================
Прошу прошения, но не SQL одним жив человек.
...
Рейтинг: 0 / 0
Насчет сортировки: это баг или что?
    #32037648
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну теперь, после мессаджа Glory, я вообще отказываюсь чего-то понимать

select convert(varchar(30),date,103) date from @t t order by date
сортирует по строке
в принципе пока логично

select convert(varchar(30),date,103) date , date d from @t t order by date
мы добавили поле date, причем дали другой алиас - а сортировать стало всё равно по этому полю!

ну и последний вариант меня просто убил:
select convert(varchar(30),date,103) date, date from @t t order by t.date
т.е. мы теперь задали, что надо явно сортировать по полю в таблице - а он стал сортировать по алиасу, хотя до этого упорно сортировал по полю!

А упорядочивать столбец по полю, которого нет в result set-е, всё же иногда имеет смысл. Например у меня был вывод даты в строковом виде, но хотелось что бы оно сортировалось нормально по дате. И я считал что у меня всё хорошо работает. Но вот занудные юзеры заметили...
...
Рейтинг: 0 / 0
Насчет сортировки: это баг или что?
    #32037669
elint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
select convert(varchar(30),date,104) date from @t t order by cast(t.date as datetime)
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Насчет сортировки: это баг или что?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]