ORDER BY -> Spez. Eintrag immer zuerst
sebbel
- datenbank
Hallo,
gibt es ein ORDER BY Statement, indem ich ganz gewöhnlich alphabetisch sortiere aber trotzdem einen speziellen Eintrag zuerst angezeigt zu bekommen?
Beispiel:
Tabelle Familie:
ID Name
1 Müller
2 Maier
3 Becker
4 Schneider
5 Heinz
alphabetisch wäre es Becker, Heinz, Maier, Müller, Schneider.
Ich brauche aber Maier, Becker, Heinz, Müller, Schneider.
Jemand eine Ahnung wie ich das Kriterium Maier da rein bringe?
Danke
Sebastian
Hi,
gibt es ein ORDER BY Statement, indem ich ganz gewöhnlich alphabetisch sortiere aber trotzdem einen speziellen Eintrag zuerst angezeigt zu bekommen?
jedes mir bekannte DBMS kann nach mehreren Kriterien sortieren. Welches DBMS auch immer Du also verwenden magst, prüfe, ob dieses eine Form von IF oder DECODE o.ä. kennt.
Cheatah
jedes mir bekannte DBMS kann nach mehreren Kriterien sortieren.
Das ist Klar: ORDER BY ID, Name ASC...
Was ich aber brauche wäre
ORDER BY Name ASC BUT SHOW 'Maier' FIRST
hi,
jedes mir bekannte DBMS kann nach mehreren Kriterien sortieren.
Das ist Klar: ORDER BY ID, Name ASC...
Was ich aber brauche wäre
ORDER BY Name ASC BUT SHOW 'Maier' FIRST
Schön, dann geh' doch jetzt bitte noch auf den Rest von Cheatahs Antwort ein - und dann bist du schon ganz nah an der Lösung.
gruß,
wahsaga
Schön, dann geh' doch jetzt bitte noch auf den Rest von Cheatahs Antwort ein - und dann bist du schon ganz nah an der Lösung.
Bin ich das nicht?
Was bringt mir DECODE(), Encryption and Compression Functions?
Und wie ich das mit dem IF Statement realisieren könnte, entzieht sich leider meiner absoluten Vorstellung.
Falls das schroff rüberkommt, soll nicht so sein.
Hi,
Und wie ich das mit dem IF Statement realisieren könnte, entzieht sich leider meiner absoluten Vorstellung.
keine Ahnung welchen Gedanken Cheatah verfolgt, aber meine spontane Idee ist eine virtuelle Spalte anzulegen.
SELECT <was jetzt auch schon da steht>,
<virtuelle Spalte> AS sortierspalte*
FROM ...
WHERE ...
ORDER BY sortierspalte, name
-> so, und genau bei der virtuellen Spalte kommt dein IF o.ä. ins Spiel: Wenn der Mensch Maier heißt, dann weise ihm einen Wert x zu, wenn er nicht Maier heißt gib ihm einen Wert y, der von ORDER BY standardmäßig hinter x einsortiert wird.
MfG
Rouven
Huhu
Und wie ich das mit dem IF Statement realisieren könnte, entzieht sich leider meiner absoluten Vorstellung.
sowas in dieser Art stelle ich mir dabei vor:
SELECT
Name,
IF(Name='DerChefOderEselDerZuerstGenanntWerdenSoll', 'AAAA', Name) as ordervalue
ORDER BY
ordervalue ASC
Viele Grüße
lulu
Hi,
SELECT
Name,
IF(Name='DerChefOderEselDerZuerstGenanntWerdenSoll', 'AAAA',Name) as ordervalue
wozu der Umweg?
Cheatah
Hi,
Schön, dann geh' doch jetzt bitte noch auf den Rest von Cheatahs Antwort ein - und dann bist du schon ganz nah an der Lösung.
Bin ich das nicht?
auf den Rest? Also auf den Teil, auf den Du nicht eingegangen bist? Nein, auf den Teil bist Du nicht eingegangen.
Was bringt mir DECODE(), Encryption and Compression Functions?
Das DECODE, welches ich in der Reihe "IF oder DECODE o.ä." nannte, hat nichts mit Encryption oder Compression zu tun.
Und wie ich das mit dem IF Statement realisieren könnte, entzieht sich leider meiner absoluten Vorstellung.
Da wird Dir keiner bei helfen können, zumal Du uns immer noch nicht verraten hast, welches DBMS Du verwendest. Aufgrund Deines Ausschlusses von DECODE wird es vermutlich kein Oracle sein.
Cheatah
yo,
zuviele köche am werk. letztlich ist es so, wie Cheatah gesagt hat, eine IF Anweisung im SELECT und dann nach zwei spalten sortieren.
SELECT namen, IF (namen = 'Maier', 0, 1) AS Sortierung
FROM Familie
ORDER BY Sortierung, namen
Ilja
yo,
zuviele köche am werk. letztlich ist es so, wie Cheatah gesagt hat, eine IF Anweisung im SELECT und dann nach zwei spalten sortieren.
SELECT namen, IF (namen = 'Maier', 0, 1) AS Sortierung
FROM Familie
ORDER BY Sortierung, namenIlja
Vielen Dank, wäre ich nie drauf gekommen.. vorallem weil ich immer in Spalten denke und nicht wusste, das man diese zu einer kombinieren kann..
Auch an alle anderen Danke für die Mühe. :)