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 „Gefällt mir“
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 „Gefällt mir“
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)