union + order by + case

Murtaza
Дата: 19.09.2005 08:38:12
Здравствуйте !
Никак нельзя отсортирить UNIOIN по выражению ?
Типа:
select t1.f, null, ...
union
select null, t2.f, ...
order by coalesce(1, 2)

Только ХП ?
Что-то некрасиво как-то только для этого ХП создавать...

Сервер ФБ 1.5
sag494
Дата: 19.09.2005 09:21:37
Murtaza
Никак нельзя отсортирить UNIOIN по выражению ?
Сделай в select-разделах union-а поле с этим выражением, а в разделе order union-а делай order by "номер поля с выражением". Или проблема именно в нежелании иметь дополнительное поле для сортировки?
Murtaza
Типа:
select t1.f, null, ...
union
select null, t2.f, ...
order by coalesce(1, 2)
неудачный пример, это можно и без выражения
select t1.f, ...
union
select t2.f, ...
order by 1
Murtaza
Дата: 19.09.2005 09:43:44
sag494
Сделай в select-разделах union-а поле с этим выражением, а в разделе order union-а делай order by "номер поля с выражением". Или проблема именно в нежелании иметь дополнительное поле для сортировки?
[quot Murtaza]Типа:
select t1.f, null, ...
union
select null, t2.f, ...
order by coalesce(1, 2)

Ну да, согласен, так можно. Но прием так же искусственный, как и ХП.


sag494

неудачный пример, это можно и без выражения
select t1.f, ...
union
select t2.f, ...
order by 1

А вот тут не понял.
t1 - таблица отгрузок
поле f - дата отгрузки
t2 - таблица платежей
поле f - дата платежа
Нужно вывести обе колонки, не мешая в кучу эти даты.
sag494
Дата: 19.09.2005 09:52:31
Murtaza
Ну да, согласен, так можно. Но прием так же искусственный, как и ХП.
но при этом хп создавать не надо
Murtaza
А вот тут не понял.
t1 - таблица отгрузок
поле f - дата отгрузки
t2 - таблица платежей
поле f - дата платежа
Нужно вывести обе колонки, не мешая в кучу эти даты.
Это я тебя не понял. Какая сортировка по этим полям нужна?
Murtaza
Дата: 19.09.2005 10:15:54
sag494
Это я тебя не понял. Какая сортировка по этим полям нужна?

Хронологическая.

ЗЫ: Планы, кстати, разные получаем для 1)ХП и 2)запрос с доп. полем.
sag494
Дата: 19.09.2005 10:21:09
Murtaza
sag494
Это я тебя не понял. Какая сортировка по этим полям нужна?
Хронологическая.
такая?
select t1.f, null, t1.f, ...
union
select null, t2.f, t2.f, ...
order by 3
Murtaza
ЗЫ: Планы, кстати, разные получаем для 1)ХП и 2)запрос с доп. полем.
всяко бывает.
Murtaza
Дата: 19.09.2005 10:32:43
sag494
такая?
select t1.f, null, t1.f, ...
union
select null, t2.f, t2.f, ...
order by 3

Ну да. :)
Т.е. без доп. поля здесь никак, ИМХО.

Спасибо, вопрос (вернее, ответ на него) более-менее ясен.
Т.е. по номерам полей в unioin так прямо выражение для orber by не составить.