UNION Отображение результатов запроса в запросах заказа - PullRequest
1 голос
/ 02 ноября 2010

пример -

select * from discussion where title like '%india%' 
UNION 
select * from discussion where title like '%Australia%'

Показывает результаты в порядке идентификаторов обсуждения, смешивая оба типа результатов

Я хочу сначала отобразить результаты Индии, а затем результаты Австралии, и я не могу использовать Option ALlкак мне нужно удалить дубликаты строк также.

Что должно быть сделано?

Ответы [ 3 ]

5 голосов
/ 02 ноября 2010

Вы можете добавить столбец к заказу на

select *, 1 as ORD from discussion where title like '%india%' 
UNION 
select *, 2 as ORD from discussion where title like '%Australia%'

order by ORD

РЕДАКТИРОВАТЬ - 29/11 / 2010

В связи с проблемой дублирования с ORD я подумал о, может быть, более элегантном способе достижения этой цели

Select * from discussion
where title like '%india%' or title like '%Australia%'
order by (case when title like '%india%'then 1 else 2 end)
1 голос
/ 02 ноября 2010

Попробуйте:

SELECT * FROM
(
  select 1 OrderNo, d.* from discussion d where title like '%india%' 
  UNION 
  select 2 OrderNo, d.* from discussion d where title like '%Australia%'
)
ORder by OrderNo
0 голосов
/ 02 ноября 2010
select * from
(
select * from discussion where title like '%india%' 
UNION 
select * from discussion where title like '%Australia%'
)
ORDER BY title DESC
;
...