Wie sortiere ich SQL-Ergebnisse, wenn eine Spalte leer ist?
P粉969666670
P粉969666670 2024-04-05 00:39:32
0
1
413

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粉969666670
P粉969666670

Antworte allen(1)
P粉745412116

您尚未提供有关数据的信息以及“徽标为空”的实际含义,但原则是:

ORDER BY 
  level DESC, 
  case when logo  '' then 1 else 2 end,
  bName ASC;
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage