Question

exemple -

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

Il me montre les résultats afin d'ID de discussion à la fois le mélange typse des résultats

Je veux afficher les résultats Inde d'abord, puis les résultats de l'Australie et je ne peux pas utiliser l'option que je dois ALl pour supprimer des lignes en double aussi.

Que faut-il faire?

Était-ce utile?

La solution

Vous pouvez ajouter une colonne à l'ordre sur

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

order by ORD

EDIT - 29/11/2010

En raison du double avec le problème ORD je pensais à un, peut-être, plus élégante façon de ce ACHIVE

Select * from discussion
where title like '%india%' or title like '%Australia%'
order by (case when title like '%india%'then 1 else 2 end)

Autres conseils

Essayez:

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
select * from
(
select * from discussion where title like '%india%' 
UNION 
select * from discussion where title like '%Australia%'
)
ORDER BY title DESC
;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top