Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 где ошибока при union и order by  [new]
Аноним
Guest
вот нужно чтоб один запрос приплюсовался к другому и не сортировал потом , т.к. сортировка у 2 запросов разная и чтоб первый запрос по своему сортировал , а второй - посвоему, а почемуто он сортирует как вздумается , хотя по отдельности они сортируют как надо (поля везде одинаковые)?

select * from (
select * from (
select top 100 percent * , grupid=0 from (
select * from mp1 where pr_anul=1
union all
select * from anul where ip1 in (select ip1 from mp1 where pr_anul=1)
) g order by ip1, pr_anul, indexizd
) k

union all

select * from (
select top 100 percent * from (
select *, ip1 as grupid from mp1 where pr_per=1
union all
select * ,spidper as grupid from mp1 where spidper in (select indsp1 from mp1 where pr_per=1)
) y order by grupid , pr_per
) p
) l
14 мар 04, 06:46    [577020]     Ответить | Цитировать Сообщить модератору
 Re: где ошибока при union и order by  [new]
BillyKidd
Member

Откуда: "...С того берега моря"
Сообщений: 24
А можно ли хоть одним глазком взглянуть на ошибку, которую выдаёт сервер?
Возможно, запросы, участвующие в UNION, возвращают разный набор полей.

------
Всех благ.
14 мар 04, 07:38    [577021]     Ответить | Цитировать Сообщить модератору
 Re: где ошибока при union и order by  [new]
Алексей Ельцов
Member

Откуда: Redmond
Сообщений: 252
Ошибки нет - просто в языке SQL нет возможности сделать напрямую то, что ты хочешь - Union так не работает. Сделай так если уж очень хочется:

SELECT QueryNumber = 1, MyField = ...

UNION ALL

SELECT QueryNumber = 2, MyField = ...

ORDER BY QueryNumber, MyField

Но это будет медленнее - ввод лишнего поля, дополнительная сортировка. Более оптимально - вначале задаться вопросом, действительно ли это нужно, и если да - то просто возвращать 2 сортированных результата на клиент и там уже склеивать...
14 мар 04, 08:58    [577030]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить