![]() |
Datenbank: SQL • Zugriff über: MySQL
SQL Verschiedene ORDER BY - Werte
Hallo,
ich habe eine Tabelle "Aufgaben" mit unter anderem den Spalten: "erledigt("erledigt"|"unerledigt")" und "Datum". Jetzt möchte ich gern eine SQL-Abfrage bauen, welche mir die Ergebnisse erst einmal nach erledigten und unerledigten Aufgaben sortiert ( ORDER BY `erledigt` DESC ) und zusätzlich, ( jetzt kommt das Problem ) , sollen die unerledigten Aufgaben AUFSTEIGEND und die erledigten Aufgaben ABSTEIGEND nach jeweils dem Datum sortiert werden. Hat jemand eine Idee ? Mfg Flo |
Re: SQL Verschiedene ORDER BY - Werte
Wäre mit einem UNION möglich
|
Re: SQL Verschiedene ORDER BY - Werte
Wie sähe der UNION Befehl aus um unterschiedlich zu sortieren? Habe kein UNION Beispiel mit unterschiedlichen ORDER BY- Befehlen gefunden...
|
Re: SQL Verschiedene ORDER BY - Werte
Das kommt auf die Datenbank an, ob sie das unterstützt.
|
Re: SQL Verschiedene ORDER BY - Werte
Und wie sähe das SQL-Statement aus? ( Würde es dann testen )
|
Re: SQL Verschiedene ORDER BY - Werte
Einfach die beiden Teilqueries mit Union zusammenhängen
SQL-Code:
Alternativ kann man auch ne SP schreiben.
select * from <tabelle> where erledigt order by datum desc
union select * from <tabelle> where not erledigt order by datum asc; |
Re: SQL Verschiedene ORDER BY - Werte
Hallo,
der Thread ist schon älter, aber ich bin jetzt erst darüber gestolpert. Sollte der SQL-Parser die ORDER BY Klausel bei Sets zulassen, die Teil einer UNION sind, dann wäre spätestens das Ergebnis wieder ungeordnet, da sich die Anordnung der Tupel in einem Result Set ohne ORDER BY von Lauf zu Lauf ändern darf. MYSQL5 stellt aber durchaus sprachliche Möglichkeiten zur Verfügung, mit denen man das Problem lösen kann:
SQL-Code:
Die gewünschte Ordnung für das erste Sortierkriterium ist missverständlich formuliert und muss entsprechend angepasst werden.
select * from aufgaben
order by erledigt desc, if(erledigt='erledigt', - CAST(datum as signed), CAST(datum as signed)) Freundliche Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz