Sortierung
bert
- datenbank
Hallo zusammen,
möchte eine Tabelle "Artikel" nach folgenden Kriterien sortieren:
Die Tabelle " Artikel " sieht folgender Massen aus:
id, name, preis, status
_________________________________________
1 Name1 12 1
2 -- 2 1
3 ... 0 1
4 Text1 null 1
5 Text2 5 1
6 Text3 11 1
7 Name2 0 1
8 Name3 null 1
9 Art1 3 1
10 Art4 43 2
Dazu habe ich folgenden Versuch gemacht:
SELECT Artikel.id, Artikel.preis FROM Artikel WHERE Artikel.status = 1
IN
(SELECT Artikel.id FROM Artikel WHERE Artikel.preis IS not null order by Artikel.preis asc ) order by Artikel.preis desc
In dieser Query warden alle Preise von dem größtem bis zum kleinstem dann 0 und danach null angezeigt, was auch falsch ist :-(
Die Query kann ich in eine andere Form umgestalten, die mir leider auch nicht weiter hilft :-(
SELECT Artikel.id, Artikel.preis FROM Artikel WHERE Artikel.status = 1
And Artikel.preis IS not null order by Artikel.preis desc
Hat jemand ein Idee wie man das lösen kann?
Grüße bert
Dazu habe ich folgenden Versuch gemacht: -- grausam
SELECT Artikel.id, Artikel.preis FROM Artikel WHERE Artikel.status = 1
IN -- Wo ist das AND ?
(SELECT Artikel.id FROM Artikel WHERE Artikel.preis IS not null order by Artikel.preis asc ) order by Artikel.preis desc
> Hat jemand ein Idee wie man das lösen kann?
Ja, entwickle erst einmal ein SQL-Statement, das Dir die Daten holt und passe es dann an i.p. Sortierung ("ORDER BY x DESC" böte sich da an.)
Hallo,
Ja, entwickle erst einmal ein SQL-Statement, das Dir die Daten holt und passe es dann an i.p. Sortierung ("ORDER BY x DESC" böte sich da an.)
Lösung im Netz bekommen:
slect id, preis from preise order by case when preis is not null and preis > 0 then 0 else 1 end, preis;
grüße bert