Heim > Fragen und Antworten > Hauptteil
Ich habe eine Frage zur Sortierung der Abfrageergebnisse. Ich muss 3 Spalten sortieren:
ORDER BY level DESC, logo DESC, bName ASC
Ich wollte zuerst die höchste „Stufe“ über DESC bestellen und das hat funktioniert.
Danach möchte ich bestellen, wenn „Logo“ leer ist, aber nicht der Logo-Inhalt, den meine Abfrage ausführt.
Endlich möchte ich nach bName ASC bestellen
Also die Ausgabe, die ich möchte, ist diese:
1. Level-3 has logo bName a-z 2. Level-3 has no Logo bName a-z 3. Level-2 has logo bName a-z 4. Level-2 has no Logo bName a-z 5. Level-1 has logo bName a-z 6. Level-1 has no Logo bName a-z
Ist es möglich, dies mit nur einer sauberen Abfrage zu erreichen?
Entsprechende Beispieleingabe:
Level | Logo | bName |
---|---|---|
3 | Test.jpg | Testname |
2 | Testname | |
1 | 12test.jpg | Ein anderer Testname |
1 | 3test.jpg | Anonym |
2 | John Doe | |
2 | Dodo | |
3 | 5test.jpg | Testname |
1 | sdsd-test.jpg | Testname |
In manchen Fällen ist das Spaltenlogo leer (z. B. = '' ), aber nicht NULL
P粉7454121162024-04-05 22:01:17
您尚未提供有关数据的信息以及“徽标为空”的实际含义,但原则是:
ORDER BY level DESC, case when logo <> '' then 1 else 2 end, bName ASC;