![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
UNION [D5, IB или FB]
GanibalLector © (2004-11-10 21:37:00)Можно ли использовать order by в обьедененных запросах (те,которые с union).И как собственно должен выглядеть такой запрос???Пробовал так :
select ... from таблица where ... order by некоторое поле
union
select ... from таблица2 where ... order by некоторое поле
Не получилось. :(
GanibalLector (2004-11-11 01:22:00) [1]>а что спасибо??? Я ступил по крупному.
Ничего подобного.Все прекрасно работает.Решение Johnmen тоже правильное,но все дело в том,что переписывать запрос лень...уж лучше order by 9,11,2 ;)
GanibalLector (2004-11-11 00:39:00) [2]Кстати,только что открыл Грабера.Так вот,автор это делает как в [1].
jack128 (2004-11-10 23:32:00) [3]Johnmen © (10.11.04 23:14) [11]
Откинь all!!!Ага!! Дошло.
То есть сервер сам проводит сортровку, что определить нужно ли выкидывать записи из union'a. Сенкс..
Johnmen (2004-11-10 23:14:00) [4]Откинь all!!! Второе упоминание table1 следует читать table2!
jack128 (2004-11-10 22:48:00) [5]и где здесь сортировка??? И данные из таблицы 2?
Johnmen (2004-11-10 22:33:00) [6]>jack128 © (10.11.04 22:29) [7]
Ну вот так, например:
select 0, field1 from table1
union [all]
select 1, {maxint}-field1 from table1
jack128 (2004-11-10 22:32:00) [7]Хотя вру.. Даже с UDF не отсортируешь.. Значение псевдополя OrderField недоступно в самом запросе, а жаль..
jack128 (2004-11-10 22:29:00) [8]Johnmen © (10.11.04 22:24) [6]
Не хочешь ли ты сказать, что ордер баем ты это решишь ?
:)))
Кстати я не помню, сортировка по удф уже поддерживается?? Если - да, то можно и order by'ем ;-)
Нет - это мой вопрос. Естественно именно запросом, без SP.
Johnmen (2004-11-10 22:24:00) [9]>jack128 © (10.11.04 22:20) [5]
Не хочешь ли ты сказать, что ордер баем ты это решишь ?
:)))
Или это просто твой вопрос ?
jack128 (2004-11-10 22:20:00) [10]Johnmen © (10.11.04 22:02) [3]
А можно на примере?
Есть table1 c field1 integer, которая содержит данные
field1
2
10
5
и таблица table2
field2
8
3
20
на выходе должно быть, например
2
5
10 // первая таблица по возростанию поля field1
20
8
3 // вторая таблица по убыванию поля field2
Какой должен быть запрос??
jack128 (2004-11-10 22:07:00) [11]GanibalLector © (10.11.04 21:52) [2]
Пасиба
за что спасибо??? Я ступил по крупному. Хотя, если те именно это и надо было, то пожалуйста..
Johnmen (2004-11-10 22:02:00) [12]В данном случае ORDER BY необязателен. Достаточно перечислить поля в SELECT в нужном для сортировки порядке.
GanibalLector (2004-11-10 21:52:00) [13]Пасиба
jack128 (2004-11-10 21:50:00) [14]нет, так нельзя. Сортировка действует на весь запрос целиком, а не на каждый подзапрос. То что ты хочешь можно сделать так:
select ...., 0 as OrderField from таблица where ...
union
select ..., 1 as OrderField from таблица2 where ...
order by <номер поля OrderField>