Maison > base de données > tutoriel mysql > Comment une expression CASE peut-elle trier les résultats SQL par valeurs spécifiques ?

Comment une expression CASE peut-elle trier les résultats SQL par valeurs spécifiques ?

DDD
Libérer: 2025-01-08 17:57:41
original
779 Les gens l'ont consulté

How Can a CASE Expression Order SQL Results by Specific Values?

Utilisez les expressions CASE pour trier les résultats SQL par valeurs spécifiques

Lors de la récupération des données d'une table, vous devez souvent trier les résultats en fonction de plusieurs valeurs dans un ordre spécifique. Dans ce cas, la tâche consiste à extraire les enregistrements d'une table en fonction de clés spécifiées et de champs non indexés et à trier les résultats selon plusieurs valeurs dans une séquence spécifique.

Pour répondre à cette exigence, une expression CASE peut être utilisée pour obtenir l'ordre souhaité au lieu d'utiliser la syntaxe ORDER BY traditionnelle. La syntaxe de l'expression CASE est la suivante :

<code class="language-sql">CASE
   WHEN condition1 THEN value1
   WHEN condition2 THEN value2
   ...
   ELSE valueN
END</code>
Copier après la connexion

Dans cet exemple, l'expression CASE est utilisée pour attribuer un ordre spécifique à chaque valeur dans x_field. Par exemple, les valeurs « f », « p », « i » et « a » reçoivent respectivement les numéros de séquence 1, 2, 3 et 4. Toutes les autres valeurs qui ne correspondent pas à ces valeurs spécifiques se verront attribuer le numéro de séquence par défaut 5.

Voici un exemple de la façon dont une expression CASE peut être ajoutée à une requête SQL :

<code class="language-sql">SELECT *
FROM table
WHERE
   x_field IN ('f', 'p', 'i', 'a')
ORDER BY
   CASE x_field
      WHEN 'f' THEN 1
      WHEN 'p' THEN 2
      WHEN 'i' THEN 3
      WHEN 'a' THEN 4
      ELSE 5 -- 对不在IN子句中的值(例如:x_field = 'b')的回退值
   END, id</code>
Copier après la connexion

En utilisant une expression CASE, les résultats seront triés en fonction du numéro de séquence attribué, triant efficacement les valeurs 'f', 'p', 'i' et 'a' dans l'ordre spécifié.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal