Wie kann ich eine SQL-Abfrage erstellen, die Spalte A als primären Sortierschlüssel verwendet, aber wenn Spalte A leer ist, Spalte B als primären Sortierschlüssel verwendet?
P粉052724364
P粉052724364 2023-09-15 22:59:52
0
1
676

Mit MariaDB habe ich eine Ansicht, die Informationen liefert, unter anderem über das Datum der Veranstaltung und ob die Einladung angenommen wurde. Das Feld von eventdate 是类型为 date 的事件日期。 accepted 是类型为 tinyint ist 0, wenn die Einladung abgelehnt wird, 1, wenn die Einladung angenommen wird, andernfalls ist es standardmäßig NULL.

Ich möchte eine Abfrage entwickeln, die nach akzeptiert und Ereignisdatum sortiert, sodass mein acceptedeventdate 排序,这样我的NULL值将出现在eventdate顺序的最前面。然而,如果accepted不为NULL,则希望按照eventdateNULL

-Wert in der Ereignisdatum-Reihenfolge zuerst angezeigt wird. Wenn accepted jedoch nicht

NULL

ist, möchten Sie nach eventdate sortieren.

从邀请视图中选择* ORDER BY已接受,eventdateMeine aktuelle Anfrage lautet:

accepted = NULL Diese Abfrage sortiert die Tabelle jedoch so, dass alle -Werte vorne stehen, alle 0

-Werte am Ende stehen und schließlich alle

1

-Werte am Ende stehen, etwa so:

eventname | eventdate  | accepted
---------------------------------
Event 1   | 2022-04-14 | NULL
Event 2   | 2022-04-25 | NULL
Event 3   | 2022-03-28 | 0
Event 4   | 2022-05-03 | 0
Event 5   | 2022-04-14 | 1
Event 6   | 2022-05-01 | 1
🎜Ich hoffe, ähnliche Ergebnisse zu erzielen: 🎜
eventname | eventdate  | accepted
---------------------------------
Event 1   | 2022-04-14 | NULL
Event 2   | 2022-04-25 | NULL
Event 3   | 2022-03-28 | 0
Event 5   | 2022-04-14 | 1
Event 6   | 2022-05-01 | 1
Event 4   | 2022-05-03 | 0
🎜
P粉052724364
P粉052724364

Antworte allen(1)
P粉242126786

一种方法是使用CASE条件排序结果

SELECT * 
FROM  invite_view 
ORDER BY CASE WHEN accepted IS NULL THEN accepted
              ELSE eventDate
         END

结果:

id eventname eventdate accepted
1 Event 1 2022-04-14 null
2 Event 2 2022-04-25 null
3 Event 3 2022-03-28 0
5 Event 5 2022-04-14 1
6 Event 6 2022-05-01 1
4 Event 4 2022-05-03 0
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage