Résumé : dans ce tutoriel, vous découvrirez le SQLite CASE
expression pour ajouter la logique conditionnelle à une requête.
Le CASE
SQLite expression évalue une liste de conditions et renvoie une expression basée sur le résultat de l'évaluation.
Le CASE
l'expression est similaire à IF-THEN-ELSE
instruction dans d'autres langages de programmation.
Vous pouvez utiliser le CASE
expression dans toute clause ou instruction qui accepte une expression valide. Par exemple, vous pouvez utiliser le CASE
expression dans des clauses telles que WHERE
, ORDER BY
, HAVING
, SELECT
et des instructions telles que SELECT
, UPDATE
, et DELETE
.
SQLite fournit deux formes de CASE
expression :simple CASE
et recherché CASE
.
SQLite simple CASE
expression
Le simple CASE
expression compare une expression à une liste d'expressions pour renvoyer le résultat. Ce qui suit illustre la syntaxe du simple CASE
expression.
CASE case_expression
WHEN when_expression_1 THEN result_1
WHEN when_expression_2 THEN result_2
...
[ ELSE result_else ]
END
Code language: SQL (Structured Query Language) (sql)
Le simple CASE
expression compare le case_expression
à l'expression apparaît dans le premier WHEN
clause, when_expression_1
, pour l'égalité.
Si le case_expression
est égal à when_expression_1
, le simple CASE
retourne l'expression dans le THEN
correspondant clause, qui est le result_1
.
Sinon, le simple CASE
expression compare le case_expression
avec l'expression dans le WHEN
suivant clause.
En l'absence de case_expression
correspond à when_expression
, le CASE
l'expression renvoie le result_else
dans le ELSE
clause. Si vous omettez le ELSE
clause, le CASE
l'expression renvoie NULL.
Le simple CASE
expression utilise une évaluation de court-circuit. En d'autres termes, il renvoie le résultat et arrête d'évaluer les autres conditions dès qu'il trouve une correspondance.
Simple CASE
exemple
Jetons un coup d'œil aux customers
table dans la base de données exemple.
Supposons que vous deviez faire un rapport des groupes de clients avec la logique que si un client se situe aux États-Unis, ce client appartient au groupe national, sinon le client appartient au groupe étranger.
Pour faire ce rapport, vous utilisez le simple CASE
expression dans le SELECT
déclaration comme suit :
SELECT customerid,
firstname,
lastname,
CASE country
WHEN 'USA'
THEN 'Domestic'
ELSE 'Foreign'
END CustomerGroup
FROM
customers
ORDER BY
LastName,
FirstName;
Code language: SQL (Structured Query Language) (sql)
Essayez-le
SQLite a recherché CASE
expression
Le CASE
recherché expression évalue une liste d'expressions pour décider du résultat. Notez que le simple CASE
l'expression ne compare que l'égalité, tandis que le CASE
recherché l'expression peut utiliser n'importe quelle forme de comparaison.
Ce qui suit illustre la syntaxe du CASE
recherché expression.
CASE
WHEN bool_expression_1 THEN result_1
WHEN bool_expression_2 THEN result_2
[ ELSE result_else ]
END
Code language: SQL (Structured Query Language) (sql)
Le CASE
recherché expression évalue les expressions booléennes dans la séquence spécifiée et renvoie le résultat correspondant si l'expression est évaluée à true.
Si aucune expression n'est évaluée comme vraie, le CASE
recherché expression renvoie l'expression dans le ELSE
clause si elle est spécifiée. Si vous omettez le ELSE
clause, le CASE
recherché l'expression renvoie NULL
.
Similaire au simple CASE
expression, le CASE
recherché l'expression arrête l'évaluation lorsqu'une condition est remplie.
Recherché CASE
exemple
Nous utiliserons les tracks
table pour la démonstration.
Supposons que vous souhaitiez classer les pistes en fonction de leur longueur, par exemple moins d'une minute, la piste est courte ; entre 1 et 5 minutes, la piste est moyenne; supérieure à 5 minutes, la piste est longue.
Pour ce faire, vous utilisez le CASE
recherché expression comme suit :
SELECT
trackid,
name,
CASE
WHEN milliseconds < 60000 THEN
'short'
WHEN milliseconds > 60000 AND milliseconds < 300000 THEN 'medium'
ELSE
'long'
END category
FROM
tracks;
Code language: SQL (Structured Query Language) (sql)
Essayez-le
Dans ce tutoriel, vous avez découvert SQLite CASE
expression pour former une logique conditionnelle dans une requête SQL.