ORDER BY mit leeren Werten
Tilo
- datenbank
Hallo zusammen,
ich erstelle zur Zeit eine Datenbankabfrage in MySQL, in der die gefundenen Datensätze per ORDER BY id sortiert werden sollen.
Allerdings existiert bei vielen Datensätzen die id nicht und diese werden dann vor die Ergebnisse gesetzt.
Ist ja eigentlich auch richtig so, aber ich komme im Moment nicht darauf, wie ich sie unter die Ergebnisse mit id setzen kann.
Kann mir jemand helfen?
Hello,
ich erstelle zur Zeit eine Datenbankabfrage in MySQL, in der die gefundenen Datensätze per ORDER BY id sortiert werden sollen.
du sortierst nach einer ID?? Au Backe, ich hoffe das hast du dir gut überlegt...
Ist ja eigentlich auch richtig so, aber ich komme im Moment nicht darauf, wie ich sie unter die Ergebnisse mit id setzen kann.
du könntest einen fixen, sehr großen Wert mit selektieren sofern die ID NULL ist und nach dieser künstlichen Spalte sortieren. Dabei helfen sollte dir CASE WHEN.
Schematisch etwa:
SELECT id, (FALLS ID NULL DANN 99999999 SONST ID) AS ordnung
FROM
WHERE
ORDER BY ordnung
MfG
Rouven
Ich nutze diese Möglichkeit:
SELECT
,ISNULL(id) sort
,id
...
ORDER BY sort, id
Bei einem Satz ohne id ist sort TRUE und steht damit hinter den id- Sätzen, bei denen sort FALSE ist.
FALSE kommt erst.
Kalle
yo,
Allerdings existiert bei vielen Datensätzen die id nicht und diese werden dann vor die Ergebnisse gesetzt.
die id nicht gesetzt, klingt nach einen design-fehler oder fremdschlüsseln.
wie ich sie unter die Ergebnisse mit id setzen kann.
erstelle eine pseudospalte, die wenn der wert NULL ist, eine 1 ausgibt und wenn die id nicht NULL ist eine 0. nach dieser spalte sorierst du dann zuerst und dann nach der id. zum beispiel kannst du das mit der CASE funktion erreich oder aber andere funktionen deines dbms.
Ilja