kniffelige sql-sortier-frage
paul
- datenbank
0 suit0 Vinzenz Mai0 Ilja0 ChrisB
hallo,
ich habe eine tabelle, die folgendes enthält:
01xxxyyy rasenmäher
02xxxyyy tulpe rot
02xxxzzz tulpe grün
weiters gibt es ein array, das allen 01xxxyyy-nummern die bezeichnung "maschine", und allen 02xxxyyy - nummern die bezeichnung "blume" zuweist, da diese bezeichnungen nicht explizit in der jeweiligen tabellenzeile zu finden sind.
ich möchte die sql-abfrage aber genau nach diesen bezeichnungen sortieren, also z.b. alfabetisch: "blume", "maschine".
mit order by gehts natürlich nicht, weil diese bezeichner nicht in der tabelle vorkommen - da könnte ich bestenfalls nach 01xxxyyy und 02xxxyyy sortieren.
wie kann ich also eine nachträgliche umsortierung der sql-abfrage erreichen??
muss ich das ergebnis wiederum in ein array packen und dann sortieren, oder wie ist da die standardmäßige vorgehensweise??
danke!
Was hindert dich daran, die daten des Arrays in der Datenbank abzulegen und dann mit den Daten zusammenzuführen (per JOIN)?
Hallo Paul,
wie ist da die standardmäßige vorgehensweise??
standardmäßig verwendet man ORDER BY.
Wenn Du das nicht kannst, ändere Dein Datenbankdesign so ab, dass Du es verwenden kannst.
Freundliche Grüße
Vinzenz
moin,
wichtig ist anzugeben, welches dbms du benutzt und welche version. willst du ein array und inhalte von tabellen miteinander verheiraten, dann geht das nicht mit SQL, aber mit datenbankesprachen wie PL/SQL. wie auch immer, erst einmal ist es wichtig zu wissen, was du benutzt.
Ilja
Hi,
ich möchte die sql-abfrage aber genau nach diesen bezeichnungen sortieren, also z.b. alfabetisch: "blume", "maschine".
mit order by gehts natürlich nicht, weil diese bezeichner nicht in der tabelle vorkommen
Es geht schon, wenn du dir bspw. mittels CASE eine entsprechende „Übersetzung“ in deine Query hineinbastelst.
Ich schliesse mich allerdings suit und Vinzenz dahingehend an, dass du besser das Datenmodell derart ändern solltest, dass du diese Informationen schon dort vorliegen hast, und sie nicht erst nachträglich hineinpfriemeln musst.
MfG ChrisB