Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как сортировку после union сделать? / 20 сообщений из 20, страница 1 из 1
01.07.2005, 11:55
    #33144647
vadim®
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сортировку после union сделать?
Что сделать, чтобы вот это:

select 'Время' as str
union
select '9:00 - 10:00' as str
union
select '10:00 - 11:00' as str
order by str

выдавало именно это:

Время
9:00 - 10:00
10:00 - 11:00
...
Рейтинг: 0 / 0
01.07.2005, 12:05
    #33144675
URIX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сортировку после union сделать?
vadim®Что сделать, чтобы вот это:

select 'Время' as str
union
select '9:00 - 10:00' as str
union
select '10:00 - 11:00' as str
order by str

выдавало именно это:

Время
9:00 - 10:00
10:00 - 11:00можно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select * from (
	select 'Время' as str,  0  as ord
	union
	select str from (
		select '9:00 - 10:00' as str,  1  as ord
		union
		select '10:00 - 11:00' as str,  1  as ord ) as t
	order by str
) as tt
order by ord
...
Рейтинг: 0 / 0
01.07.2005, 12:09
    #33144689
vfabr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сортировку после union сделать?
ну вы даете

читать про сортировку строк
...
Рейтинг: 0 / 0
01.07.2005, 12:10
    #33144694
vfabr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сортировку после union сделать?
2urix

а теперь добавь туда
select '23:00 - 24:00' as str, 1 as ord
...
Рейтинг: 0 / 0
01.07.2005, 12:11
    #33144701
vfabr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сортировку после union сделать?
ашипся :-)) в твоем случае нормально все будет
прости
...
Рейтинг: 0 / 0
01.07.2005, 12:13
    #33144708
мафик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сортировку после union сделать?
хотя нет всеравно ошибка будет надо 09:00
...
Рейтинг: 0 / 0
01.07.2005, 12:16
    #33144716
vadim®
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сортировку после union сделать?
Да, ступил я конкретно. А вы говорите, документация... Без форума я-бы ещё часа 2 думал. Если не больше.
...
Рейтинг: 0 / 0
01.07.2005, 12:19
    #33144729
vfabr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сортировку после union сделать?
короче пробел стоит раньше чем цифра, а цифра раньше чем буква (незнаю с кодировками я неочень может где нить и не так)

вот так работает

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT t.* FROM (select ' Время' as str
union
select '09:00 - 10:00' as str
union
select '00:00 - 01:00' as str
union
select '22:00 - 23:00' as str
union
select '23:00 - 24:00' as str
union
select '10:00 - 11:00' as str) AS t
ORDER BY t.str

ЗЫ
почитай все таки про сортировку строк ;-)
...
Рейтинг: 0 / 0
01.07.2005, 12:35
    #33144793
vadim®
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сортировку после union сделать?
Нет, не ступил. Очень быстро сообщения идут.
Но в принципе, я могу и так извратиться.

select 'Время' as str
union
select 'с 09:00 до 10:00' as str
union
select 'с 23:00 до 24:00' as str
union
select 'с 10:00 до 11:00' as str
order by str

Так что, пока вопрос снят.
...
Рейтинг: 0 / 0
01.07.2005, 12:39
    #33144805
vadim®
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сортировку после union сделать?
vfabrкороче пробел стоит раньше чем цифра, а цифра раньше чем буква (незнаю с кодировками я неочень может где нить и не так)

вот так работает

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT t.* FROM (select ' Время' as str
union
select '09:00 - 10:00' as str
union
select '00:00 - 01:00' as str
union
select '22:00 - 23:00' as str
union
select '23:00 - 24:00' as str
union
select '10:00 - 11:00' as str) AS t
ORDER BY t.str

ЗЫ
почитай все таки про сортировку строк ;-)

1. Так не работает
2. Сортровка строк и сортировка строк после union это всё-же разные вещи
...
Рейтинг: 0 / 0
01.07.2005, 12:43
    #33144822
URIX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сортировку после union сделать?
можно еще в моем варианте поиграться с преобразованием типов в подзапросах text <-> timestamp
...
Рейтинг: 0 / 0
01.07.2005, 12:51
    #33144845
vfabr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сортировку после union сделать?
что значит не работает?

не сортирует? или выдает ошибку? (какая версия сервера? я пробую на 8)

если вы не заметили то используется конструкция
SELECT * FROM (SELECT ...) AS t ORDER BY t.param

те вы делаете сортировку от конечного набора
...
Рейтинг: 0 / 0
01.07.2005, 13:02
    #33144879
URIX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сортировку после union сделать?
вот еще вариантик
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select * from (
        select 'Время' as str,  0  as ord
        union
        select str,  1  as ord from (
                select '9:00 - 10:00' as str,
                union
                select '10:00 - 11:00' as str
        ) as t
        order by cut_first_time_and_convert_it_2_timestamp(str)
) as tt
order by ord
...
Рейтинг: 0 / 0
01.07.2005, 13:05
    #33144894
vfabr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сортировку после union сделать?
теперь самый главный вопрос

на кой хрен это нужно?! :-)

ЗЫ
наверняка можно и без таких извратов (сортировать строчки и время как строчки в перемешку)
...
Рейтинг: 0 / 0
01.07.2005, 13:21
    #33144955
vadim®
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сортировку после union сделать?
vfabrна кой хрен это нужно?! :-)

Дык это, как его... начальство хочет. Но если интересно -
Есть большой-пребольшой отчёт. Всё одним запросом. Выводится всё в html. Помимо всевозможных группировок, ещё и итоги всего чего чёрная душа начальства не пожелает.
Короче, по-уму переделывать лень.
...
Рейтинг: 0 / 0
01.07.2005, 13:27
    #33144975
vfabr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сортировку после union сделать?
время конечно же обязательный параметр :-)
...
Рейтинг: 0 / 0
01.07.2005, 16:30
    #33145577
4321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сортировку после union сделать?
vfabr
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT t.* FROM (select ' Время' as str
union
select '09:00 - 10:00' as str
union
select '00:00 - 01:00' as str
union
select '22:00 - 23:00' as str
union
select '23:00 - 24:00' as str
union
select '10:00 - 11:00' as str) AS t
ORDER BY t.str

алиас для упоминания в ОрдерБай дастаточно дать в 1-м селекте
select ' Время' as str
union
select '09:00 - 10:00'
union
select '00:00 - 01:00'
union
select '22:00 - 23:00'
union
select '23:00 - 24:00'
union
select '10:00 - 11:00'
union
select ' 10:00 - 11:00'
--) AS t
--ORDER BY t.str
ORDER BY str

а для произволного написания именно первой строчки достаточно
select 'Время' as str , 0 As ord
union
select '09:00 - 10:00', 1
union
select '00:00 - 01:00',1
union
select '22:00 - 23:00',1
union
select '23:00 - 24:00',1
union
select '10:00 - 11:00',1
union
select ' 10:00 - 11:00',1

ORDER BY ord,str


или

SELECT str FROM (
select 'Время' as str , 0 As ord
union
select '09:00 - 10:00', 1
union
select '00:00 - 01:00',1
union
select '22:00 - 23:00',1
union
select '23:00 - 24:00',1
union
select '10:00 - 11:00',1
union
select ' 10:00 - 11:00',1
ORDER BY ord,str) AS foo
ORDER BY ord,str
...
Рейтинг: 0 / 0
01.07.2005, 16:36
    #33145601
vfabr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сортировку после union сделать?
насколько часто в правильно спроектированной базе придецца делать такие вот (или подобные) финты ушами?

вот и мне кажется что очень нечасто ;-)
...
Рейтинг: 0 / 0
01.07.2005, 16:41
    #33145616
4321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сортировку после union сделать?
vfabrнасколько часто в правильно спроектированной базе придецца делать такие вот (или подобные) финты ушами?

вот и мне кажется что очень нечасто ;-)
это типичная задача для списков (в интермордии) при наличии неопределенных значений
например

SELECT id,str FROM (
select Null as id , 'пусто' AS str, 0 As ord
union ALL
select id, name,1 FROM test
ORDER by ord, str) AS foo
ORDER by ord, str

ord не передаем шоб трафик поберечь
...
Рейтинг: 0 / 0
01.07.2005, 17:01
    #33145678
vadim®
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сортировку после union сделать?
4321 - Большое спасибо.

зы:
vfabr
..
что значит не работает?
...
SELECT t.* FROM (select ' Время' as str
union
select '09:00 - 10:00' as str
union
select '00:00 - 01:00' as str
union
select '22:00 - 23:00' as str
union
select '23:00 - 24:00' as str
union
select '10:00 - 11:00' as str) AS t
ORDER BY t.str

Я на 7.3.2. У меня в этом случае Время - последнее. А надо чтобы 1-ым
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как сортировку после union сделать? / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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