Вниз
Скачать: CL | DM;

UNION   Найти похожие ветки 

 
GanibalLector ©   (2004-11-10 21:37) [0]

Можно ли использовать order by в обьедененных запросах (те,которые с union).И как собственно должен выглядеть такой запрос???Пробовал так :

select ... from таблица where ... order by некоторое поле
union
select ... from таблица2 where ... order by некоторое поле

Не получилось. :(


 
jack128 ©   (2004-11-10 21:50) [1]

нет, так нельзя.  Сортировка действует на весь запрос целиком, а не на каждый подзапрос. То что ты хочешь можно сделать так:

select ...., 0 as OrderField from таблица where ...
union
select ..., 1 as OrderField from таблица2 where ...
order by <номер поля OrderField>


 
GanibalLector ©   (2004-11-10 21:52) [2]

Пасиба


 
Johnmen ©   (2004-11-10 22:02) [3]

В данном случае ORDER BY необязателен. Достаточно перечислить поля в SELECT в нужном для сортировки порядке.


 
jack128 ©   (2004-11-10 22:07) [4]

GanibalLector ©   (10.11.04 21:52) [2]
Пасиба


за что спасибо??? Я ступил по крупному.  Хотя, если те именно это и надо было, то пожалуйста..


 
jack128 ©   (2004-11-10 22:20) [5]

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

Какой должен быть запрос??


 
Johnmen ©   (2004-11-10 22:24) [6]

>jack128 ©  (10.11.04 22:20) [5]

Не хочешь ли ты сказать, что ордер баем ты это решишь ?
:)))
Или это просто твой вопрос ?


 
jack128 ©   (2004-11-10 22:29) [7]

Johnmen ©   (10.11.04 22:24) [6]
Не хочешь ли ты сказать, что ордер баем ты это решишь ?
:)))


Кстати я не помню, сортировка по удф уже поддерживается?? Если - да, то можно и order by"ем ;-)

Нет - это мой вопрос.  Естественно именно запросом, без SP.


 
jack128 ©   (2004-11-10 22:32) [8]

Хотя вру.. Даже с UDF не отсортируешь.. Значение псевдополя OrderField недоступно в самом запросе, а жаль..


 
Johnmen ©   (2004-11-10 22:33) [9]

>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:48) [10]

и где здесь сортировка??? И данные из таблицы 2?


 
Johnmen ©   (2004-11-10 23:14) [11]

Откинь all!!! Второе упоминание table1 следует читать table2!


 
jack128 ©   (2004-11-10 23:32) [12]

Johnmen ©   (10.11.04 23:14) [11]
Откинь all!!!
Ага!! Дошло.
То есть сервер сам проводит сортровку, что определить нужно ли выкидывать записи из union"a.  Сенкс..


 
GanibalLector ©   (2004-11-11 00:39) [13]

Кстати,только что открыл Грабера.Так вот,автор это делает как в [1].


 
GanibalLector ©   (2004-11-11 01:22) [14]

>а что спасибо??? Я ступил по крупному.
Ничего подобного.Все прекрасно работает.Решение Johnmen тоже правильное,но все дело в том,что переписывать запрос лень...уж лучше order by 9,11,2  ;)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.077 c
1-1101826657
Павел
2004-11-30 17:57
2004.12.12
Таймер в многопоточном приложение


1-1101588154
Zombie
2004-11-27 23:42
2004.12.12
Интересное предложение


14-1100903958
123
2004-11-20 01:39
2004.12.12
C#


1-1101738973
Гриша
2004-11-29 17:36
2004.12.12
мемо


1-1101544263
Александр В.
2004-11-27 11:31
2004.12.12
Сохранение позиции TTreeView после обновления




   Наверх