Maison  >  Questions et réponses  >  le corps du texte

Comment trier les résultats SQL si une colonne est vide ?

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粉969666670P粉969666670178 Il y a quelques jours326

répondre à tous(1)je répondrai

  • P粉745412116

    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;

    répondre
    0
  • Annulerrépondre