Comment puis-je créer une requête SQL qui utilise la Col A comme clé de tri primaire, mais si la Col A est vide, utilise la Col B comme clé de tri primaire ?
P粉052724364
P粉052724364 2023-09-15 22:59:52
0
1
615

En utilisant MariaDB, j'ai une vue qui fournit des informations, notamment la date de l'événement et si l'invitation a été acceptée. Le champ de eventdate 是类型为 date 的事件日期。 accepted 是类型为 tinyint est 0 si l'invitation est rejetée, 1 si l'invitation est acceptée, sinon il vaut par défaut NULL.

Je souhaite développer une requête qui trie par accepté et eventdate afin que ma valeur acceptedeventdate 排序,这样我的NULL值将出现在eventdate顺序的最前面。然而,如果accepted不为NULL,则希望按照eventdateNULL

apparaisse en premier dans l'ordre eventdate. Cependant, si accepted n'est pas

NULL

, vous souhaitez trier par date d'événement.

从邀请视图中选择* ORDER BY已接受,eventdateMa requête actuelle est :

accepted = NULL Cependant, cette requête trie le tableau de manière à ce que toutes les valeurs soient au début, toutes les valeurs 0

soient à la fin et enfin toutes les valeurs

1

soient à la fin, comme ceci :

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
🎜J'espère obtenir des résultats similaires à celui-ci : 🎜
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

répondre à tous(1)
P粉242126786

Une façon consiste à utiliser la condition CASE pour trier les résultats

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

Résultat :

id nom de l'événement date de l'événement accepté
1 Événement 1 2022-04-14 null
2 Événement 2 2022-04-25 null
3 Événement 3 2022-03-28 0
5 Événement 5 2022-04-14 1
6 Événement 6 2022-05-01 1
4 Événement 4 2022-05-03 0
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!