Maison > Questions et réponses > le corps du texte
J'ai une question sur le tri des résultats des requêtes. J'ai 3 colonnes à trier :
ORDER BY level DESC, logo DESC, bName ASC
Je voulais d'abord commander le "niveau" le plus élevé via DESC et cela a fonctionné.
Ensuite, je souhaite commander si "logo" est vide mais pas le contenu du logo que ma requête exécute.
Enfin je souhaite commander par bName ASC
Donc, le résultat que je veux est le suivant :
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
Est-il possible d'accomplir cela avec une seule requête propre ?
Exemple de saisie correspondant :
Niveau | logo | bNom |
---|---|---|
3 | Test.jpg | Nom du test |
2 | Nom du test | |
1 | 12test.jpg | Un autre nom de test |
1 | 3test.jpg | Anonyme |
2 | John Doe | |
2 | Dodo | |
3 | 5test.jpg | Nom du test |
1 | sdsd-test.jpg | Nom du test |
Dans certains cas, le logo de la colonne est vide (par exemple = '' ), mais pas NULL
P粉7454121162024-04-05 22:01:17
Vous n'avez pas fourni d'informations sur vos données et sur ce que signifie réellement "le logo est vide", mais le principe est le suivant :
ORDER BY level DESC, case when logo <> '' then 1 else 2 end, bName ASC;