Maison >base de données >tutoriel mysql >Comment l'expression SQL CASE fonctionne-t-elle sur différents systèmes de bases de données ?

Comment l'expression SQL CASE fonctionne-t-elle sur différents systèmes de bases de données ?

DDD
DDDoriginal
2025-01-11 06:45:41329parcourir

How Does the SQL CASE Expression Work Across Different Database Systems?

Syntaxe complète de l'expression SQL CASE

Les expressions SQL CASE sont conçues pour gérer des requêtes complexes, vous permettant d'évaluer plusieurs conditions et de renvoyer des valeurs spécifiques en fonction des conditions remplies. Sa syntaxe varie selon les différents moteurs de base de données.

SQL Serveur

La syntaxe générale de l'expression CASE de SQL Server est la suivante :

<code class="language-sql">CASE case-expression
    WHEN when-expression-1 THEN value-1
  [ WHEN when-expression-n THEN value-n ... ]
  [ ELSE else-value ]
END</code>

Oracle

La syntaxe des expressions CASE d'Oracle adopte une approche légèrement différente :

<code class="language-sql">CASE
    WHEN boolean-when-expression-1 THEN value-1
  [ WHEN boolean-when-expression-n THEN value-n ... ]
  [ ELSE else-value ]
END</code>

Composants de l'expression CASE

  • case-expression : La valeur à évaluer par rapport aux expressions quand.
  • when-expression : Une expression à comparer avec case-expression.
  • valeur : Le résultat d'une instruction CASE si l'expression quand correspondante correspond à l'expression cas.
  • boolean-when-expression : Une expression booléenne qui détermine s'il faut renvoyer la valeur correspondante.
  • else-value : La valeur renvoyée si aucune expression quand ne correspond à l'expression cas.

Sémantique d'exécution

L'expression CASE évalue chaque expression quand de manière séquentielle. Lorsqu'une correspondance est trouvée, la valeur correspondante est renvoyée. Si aucune correspondance n'est trouvée, renvoie la valeur else s'il y en a une. Notez que l'ordre des expressions quand est important car la première expression correspondante est prioritaire.

Exemple

Considérez la requête suivante :

<code class="language-sql">SELECT CASE student_age
    WHEN 18 THEN 'Teenager'
    WHEN 21 THEN 'Adult'
    ELSE 'Minor'
END AS age_category
FROM students;</code>

Cette requête attribue une catégorie d'âge à l'étudiant en fonction de son âge, "Adolescent" s'il a 18 ans, "Adulte" s'il a 21 ans, ou "Mineur" s'il a moins de 18 ans ou qu'aucune correspondance n'est trouvée.

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!

Déclaration:
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