Heim  >  Fragen und Antworten  >  Hauptteil

Wie sortiere ich SQL-Ergebnisse, wenn eine Spalte leer ist?

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粉969666670P粉969666670178 Tage vor332

Antworte allen(1)Ich werde antworten

  • P粉745412116

    P粉7454121162024-04-05 22:01:17

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

    ORDER BY 
      level DESC, 
      case when logo <> '' then 1 else 2 end,
      bName ASC;

    Antwort
    0
  • StornierenAntwort