CAS PostgreSQL

Résumé: dans ce tutoriel, vous apprendrez à utiliser l’expression conditionnelle de cas PostgreSQL pour former des requêtes conditionnelles.

L’expression PostgreSQL CASE est la même que l’instruction IF/ELSE dans d’autres langages de programmation. Il vous permet d’ajouter une logique if-else à la requête pour former une requête puissante.

Puisque CASE est une expression, vous pouvez l’utiliser dans tous les endroits où une expression peut être utilisée, par exemple,SELECT, WHERE, GROUP BY, et la clause HAVING.

L’expression CASE a deux formes : la forme générale et la forme simple.

1) Expression générale de cas PostgreSQL

Ce qui suit illustre la forme générale de l’instruction CASE:

Code language: SQL (Structured Query Language) (sql)

Dans cette syntaxe, chaque condition (condition_1, condition_2…) est une expression booléenne qui renvoie true ou false.

Lorsqu’une condition est évaluée à false, l’expression CASE évalue la condition suivante de haut en bas jusqu’à ce qu’elle trouve une condition qui est évaluée à true.

Si une condition est évaluée à true, l’expression CASE renvoie le résultat correspondant qui suit la condition. Par exemple, si condition_2 est évalué à true, l’expression CASE renvoie result_2. De plus, il cesse immédiatement d’évaluer l’expression suivante.

Dans le cas où toutes les conditions sont évaluées à false, l’expression CASE renvoie le résultat (else_result) qui suit le mot clé ELSE. Si vous omettez la clause ELSE, l’expression CASE renvoie NULL.

Jetons un coup d’œil à la table film de l’exemple de base de données.

A) Un exemple de CAS général

Supposons que vous souhaitiez étiqueter les films par leur longueur en fonction de la logique suivante:

  • Si la durée est inférieure à 50 minutes, le film est court.
  • Si la durée est supérieure à 50 minutes et inférieure ou égale à 120 minutes, le film est moyen.
  • Si la durée est supérieure à 120 minutes, le film est long.

Pour appliquer cette logique, vous pouvez utiliser l’expression CASE dans l’instruction SELECT comme suit:

Code language: PHP (php)

Sortie:

Notez que nous avons placé un alias de colonne duration après l’expression CASE.

B) Utilisation du CAS avec une fonction d’agrégation exemple

Supposons que vous souhaitiez affecter des segments de prix à des films avec la logique suivante:

  • Si le tarif de location est de 0,99, le film est économique.
  • Si le taux de location est de 1,99, le film est en masse.
  • Si le tarif de location est de 4,99, le film est premium.

Et vous voulez connaître le nombre de films appartenant à economy, mass et premium.

Dans ce cas, vous pouvez utiliser l’expression CASE pour construire la requête comme suit:

Code language: SQL (Structured Query Language) (sql)

Le résultat de la requête est le suivant:

Dans cet exemple, nous avons utilisé l’expression CASE pour renvoyer 1 ou 0 si le taux de location tombe dans chaque segment de prix. Et nous avons appliqué la fonction SUM pour calculer le total des films pour chaque segment de prix.

2) Expression de cas PostgreSQL simple

PostgreSQL fournit une autre forme de l’expression CASE appelée forme simple comme suit:

Code language: SQL (Structured Query Language) (sql)

Le CASE évalue d’abord le expression et compare le résultat avec chaque valeur( value_1, value_2, …) dans les clauses WHEN séquentiellement jusqu’à ce qu’il trouve la correspondance.

Une fois que le résultat de expression est égal à une valeur (valeur1, valeur2, etc.) dans une clause WHEN, la clause CASE renvoie le résultat correspondant dans la clause THEN.

Si CASE ne trouve aucune correspondance, il renvoie la valeur else_result qui suit la valeur ELSE, ou NULL si la valeur ELSE n’est pas disponible.

A) Exemple simple d’expression de CAS PostgreSQL

L’instruction suivante utilise l’expression CASE pour ajouter la description de notation à la sortie:

Code language: PHP (php)

Dans cet exemple, nous avons utilisé une expression simple CASE pour comparer la note de la table film avec des valeurs littérales telles que G, PG, NC17, PG-13 et renvoyer la description de la note correspondante.

B) Utilisation d’une simple expression de cas PostgreSQL avec exemple de fonction d’agrégation

L’instruction suivante utilise l’expression CASE avec la fonction SUM pour calculer le nombre de films dans chaque classement:

Code language: PHP (php)

Dans ce tutoriel, vous avez appris à utiliser l’expression PostgreSQL CASE pour former des requêtes complexes.

  • Ce tutoriel a-t-il été utile?
  • Ouinon

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.