UNION-Abfrage-Ergebnisse anzeigen, um Abfragen geschrieben
-
28-09-2019 - |
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?
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
achiveSelect * 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