2016-11-29 5 views
1

У меня есть запрос Sql, который является объединением трех запросов, например:Sql сортировать по запросу

query1 
Union 
query2 
Union 
query3 

Я хочу спросить, есть ли способ, чтобы иметь выход соответствующего по запросам, так что результаты запроса1 являются первыми в ResultSet, query2 second и query3 в конце.

Спасибо

+1

добавить пример данных и ожидаемый результат –

ответ

4

Вы обычно делаете это, в том числе столбец с указанием запроса и заказа на что:

select . . . 
from ((select q.*, 1 as ordering from (<query1>) q) union all 
     (select q.*, 2 as ordering from (<query2>) q) union all 
     (select q.*, 3 as ordering from (<query3>) q) 
    ) q 
order by ordering; 

Примечание: Это заменяет union с union all, поэтому дубликаты не удаляются.

+0

каждый запрос из другой таблицы и имеет разные объединения, как я могу применить это к моему запросу? –

+0

@AbdallaIsmail. , , Поместите свои запросы, где '' есть. Или используйте CTE, чтобы код был легче читать. –

+0

Спасибо за помощь, однако в результатах есть столбец добавления с именем ordering, как я могу удалить его? –

Смежные вопросы