Order by ... aber nicht alphabetisch

Hallo,
Ich habe hier ein ganz kleine Datenbank und möchte die Einträge nach Werten in einer Spalte sortieren lassen.
Soweit so gut…dafür würde sich ja „order by“ anbieten.

Dummerweise möchte ich, dass die Einträge mit „Integration“ als erstes stehen, dann „Test“ und dann „Abnahme“.
Wie kann ich das machen?

Gruß

Sina

Moin, Sina,

wenn die private Sortierfolge für die ganze Datenbank gelten soll, dann bieten manche DBMS die Möglichkeit, von außen eine Sortierfolge vorzugeben (Stichwort collation sequence). Ich vermute aber, dass Du nur eine Tabelle so krumm sortieren möchtest - da geht wohl kein Weg an einer Hilfsspalte vorbei, die Du aus dem Inhalt der ursprünglichen Spalte berechnest.

Gruß Ralf

Hallo Ralf,
dachte ich mir fast.
Habe nun in einer separaten Tabelle die möglichen Werte und dann die gewünschte Sortierreihenfolge mitgegeben. Die habe ich nun über Beziehungen verknüpft und so läuft es auch.

Schade, das es nicht einfacher geht

Gruß

Sina

Klar geht es einfacher!

SELECT \* FROM DeineTabelle
ORDER BY IIF(DeinFeld="Integration",1,IIF(DeinFeld="Test",2,3))

wobei es sich bei mehr als zwei, drei Werten empfiehlt, eine spezialisierte kleine VBA-Routine zur Wertezuordnung zu schreiben.

Gruß aus dem Norden
Reinhard Kraasch

(http://www.dbwiki.de - das Datenbank-Wiki)

IIF is ne Funktion, die sowohl den zutreffende Zustand als auch den nicht zutreffenden Zustand auswertet.

mfg

schmitti

So geht’s jedenfalls nicht
Hi schmitti,

IIF is ne Funktion, die sowohl den zutreffende Zustand als
auch den nicht zutreffenden Zustand auswertet.

das ist eine Antwort, die nur dem hilft, der es eh schon weiß.

VBA-Funktion? Irgendwie zu Access gehörig? Standard-SQL? Oracle-Erweiterung? …

Gruß Ralf

IIF ist eine VBA-Funktion („Wenn-Funktion“) und ist in der VBA-Hilfe erklärt. Der Hinweis aufs DBWiki hat nichts mit der Frage zu tun, sondern ist Teil meiner Signatur.

Gruß aus dem Norden
Reinhard Kraasch

(http://www.dbwiki.de - das Datenbank-Wiki)

VBA-Funktion? Irgendwie zu Access gehörig?

ich würde es VB/VBA-Funktion nennen

http://www.vbarchiv.net/commands/IIF.php
http://www.databasedev.co.uk/iif_function.html

Standard-SQL? Oracle-Erweiterung?

noch nie probiert, ob es ähnliches oder genau diese Funktion auch für SQL oder Oracle gibt

1 Like

Na ja - aber dass Jet-SQL nicht ANSI-SQL ist…
… sollte sich ja eigentlich allmählich rumgesprochen haben… Aus gutem Grund hat Access seine eigene Sektion und steht nicht unter „SQL-Datenbanken“.

In ANSI-SQL würde das im übrigen in etwa so aussehen:

SELECT \*, Sort =
 CASE DeinFeld
 WHEN 'Integration' THEN 1
 WHEN 'Test' THEN 2
 ELSE 3
 END
FROM DeineTabelle
ORDER BY Sort

Gruß aus dem Norden
Reinhard Kraasch

(http://www.dbwiki.de - das Datenbank-Wiki)

1 Like

Richtig
niedlich, was M$ dazu schreibt:
http://support.microsoft.com/kb/234525/de

Ja, diese automatischen Übersetzungen sind wirklich drollig - d.h. genau genommen: eine Zumutung (Was immer das magische „X“ in „Das X, den Microsoft Access ODBC-Treiber…“ sein mag!)

Gruß aus dem Norden
Reinhard Kraasch

(http://www.dbwiki.de - das Datenbank-Wiki)