Frage

Beispiel -

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

Es zeigt mir, in der Reihenfolge der Diskussion IDs führt sowohl typse der Ergebnisse Misch

Ich mag dann Australien Ergebnisse erstes Indien Ergebnisse anzuzeigen, und ich kann nicht Option, alle benutzt, wie ich auch doppelte Zeilen entfernen muß.

Was sollte getan werden?

War es hilfreich?

Lösung

Sie können eine Spalte hinzufügen, um auf

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

Durch die doppelte mit ORD Problem, das ich war über ein Denken, vielleicht, eleganter Weg, um dieses

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

Andere Tipps

Versuchen Sie:

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
;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top