paul: kniffelige sql-sortier-frage

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!

  1. Was hindert dich daran, die daten des Arrays in der Datenbank abzulegen und dann mit den Daten zusammenzuführen (per JOIN)?

  2. 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

  3. 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

  4. 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

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]