Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.12;
Скачать: 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 вся ветка

Текущий архив: 2004.12.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.028 c
4-1097680465
Сергей К.
2004-10-13 19:14
2004.12.12
Пример low level хука


3-1100532292
denis24
2004-11-15 18:24
2004.12.12
select ....like *


14-1101033590
ms
2004-11-21 13:39
2004.12.12
Как в VB6 вызвать функцию из библиотеки C++


6-1096623637
TUser
2004-10-01 13:40
2004.12.12
ICS под XP


4-1099076434
Redhopter
2004-10-29 23:00
2004.12.12
О перехвате сообщений