Comprendre l'expression CASE dans GaussDB SQL

Cet article est partagé à partir de la communauté Huawei Cloud « GaussDB SQL Basic Syntax Sample-CASE Expression » par Gauss Squirrel Club Assistant 2.

Introduction

SQL est un langage informatique standard utilisé pour accéder et manipuler des bases de données. GaussDB prend en charge le standard SQL (les principales fonctionnalités de SQL2, SQL3 et SQL4 sont prises en charge par défaut).

Cette série sera présentée sur la base du document en ligne « Cloud Database GaussDB—SQL Reference ».

2. Introduction à l'expression CASE

Dans GaussDB SQL, l'expression CASE (CASE Expression) est un outil très puissant et couramment utilisé qui peut être utilisé pour effectuer des opérations basées sur des conditions dans SQL. Les expressions CASE sont similaires aux instructions IF-THEN-ELSE, mais sont plus flexibles à utiliser et plus faciles à lire et à écrire.

L'expression CASE contient deux formes, l'une est la forme simple et l'autre est la forme de recherche. L'écriture, la grammaire et l'utilisation de ces deux formes seront présentées ci-dessous.

3. Expression CASE simple dans la base de données GaussDB

1. Notions de base

Une simple expression CASE effectue une comparaison basée sur l'égalité sur une expression donnée et effectue une opération si l'expression est égale à une certaine valeur. Autrement dit, passez à l'expression_résultat correspondante en fonction du résultat correspondant de expression_entrée et expression_quand.

2. Grammaire de base

CASE expression_entrée

QUAND expression_quand ALORS expression_résultat

[...n]

[ELSE else_result_expression]

FIN;

illustrer :

Parmi eux, input_expression représente l'expression qui doit être comparée, when_expression, etc. représente la valeur qui doit être comparée, result_expression, etc. représente le résultat lorsque chaque valeur est égale, else_result_expression représente le résultat par défaut lorsque input_expression n'est pas égal à de n'importe quelle valeur.

Conseil :

CASE : La fonction CASE simple prend en charge les sous-requêtes, mais veuillez noter que input_expression et when_expression peuvent correspondre. De plus, s'il n'y a pas d'expression input_expression = when_expression qui est évaluée à TRUE, alors lorsque la clause ELSE est spécifiée, DLI renverra else_result_expression ; lorsque la clause ELSE n'est pas spécifiée, une valeur NULL sera renvoyée.

3. Exemple

En supposant que le niveau de l'employé soit défini sur la base d'un salaire fixe, il peut être exécuté selon le SQL suivant :

CHOISIR le nom

,salaire

,CAS salaire

     QUAND 15000 PUIS 'Junior'

         QUAND 20000 ALORS 'Intermédiaire'

            QUAND 25000 PUIS 'Premium'

            QUAND 30000 PUIS 'Premium'

            QUAND 35000 PUIS 'Premium'

            AUTRE NUL

        Niveau FIN COMME

DE la société

COMMANDER PAR salaire ;

Analyse des instructions SQL :

Le test utilise une table company créée dans la base de données GaussDB.

Ce SQL sélectionne le nom (name), le salaire (salary) de l'employé ainsi qu'un champ classé selon le niveau de salaire (level) dans la table "entreprise". Et utilisez l'instruction « ORDER BY salaire » pour trier les résultats du salaire faible au salaire élevé.

Comment fonctionnent les expressions CASE simples :

Si la valeur du champ « salaire » est égale à 15000, alors la valeur du champ « niveau » est « junior ».

Si la valeur du champ « salaire » est égale à 20000, alors la valeur du champ « niveau » est « intermédiaire ».

Si la valeur du champ « salaire » est égale à 25000 ou 30000 ou 35000, alors la valeur du champ « niveau » est « avancé ».

Si la valeur du champ « salaire » n’est égale à aucune des valeurs ci-dessus, alors la valeur du champ « niveau » est NULL.

4. Rechercher l'expression CASE dans la base de données GaussDB

1. Notions de base

Rechercher une expression CASE signifie effectuer une comparaison basée sur les inégalités sur une expression donnée et effectuer l'opération correspondante si l'expression satisfait à la condition donnée. Autrement dit, l'expression_booléenne de chaque clause WHEN est évaluée dans l'ordre spécifié. Renvoie l'expression_résultat de la première expression_booléenne qui est évaluée à TRUE.

2. Grammaire de base

CAS QUAND expression_booléenne ALORS expression_résultat

[...n]

[ELSE else_result_expression]

FIN;

illustrer:

Parmi eux, boolean_expression, etc. représentent les conditions qui doivent être comparées, result_expression, etc. représentent les résultats de l'opération lorsque les conditions correspondantes sont remplies, et else_result_expression représente le résultat par défaut lorsque l'expression ne remplit aucune condition.

Conseil :

boolean_expression : peut contenir des sous-requêtes, mais la valeur de retour de l'ensemble de l'expression boolean_expression ne peut être que de type booléen.

S'il n'y a pas d'expression booléenne qui renvoie la valeur TRUE, DLI renverra else_result_expression lorsque la clause ELSE est spécifiée ; lorsque la clause ELSE n'est pas spécifiée, une valeur NULL sera renvoyée.

3. Exemple

En supposant que le niveau de l'employé soit défini en fonction de l'échelle salariale, il peut être exécuté selon le SQL suivant :

CHOISIR le nom

,salaire

,CAS OÙ salaire < 15000 ALORS '初级'

         QUAND salaire ENTRE 15000 ET 25000 ALORS '中级'

            QUAND salaire >25000 ALORS 'Senior'

            AUTRE NUL

        Niveau FIN COMME

DE la société

COMMANDER PAR salaire ;

Analyse des instructions SQL :

Ce SQL est le même que ci-dessus, sélectionnant le nom (nom), le salaire (salaire) de l'employé et le classant selon son niveau de salaire (niveau) dans la table « entreprise ».

Comment fonctionnent les expressions CASE de recherche :

Lorsque le salaire (salaire) est inférieur à 15 000, l'échelon salarial est marqué comme « junior ».

Lorsque le salaire est compris entre 15 000 et 25 000 (inclus), l'échelon salarial est marqué comme « intermédiaire ».

Lorsque le salaire est supérieur à 25 000, l'échelon salarial est marqué comme « senior ».

Si aucune des conditions ci-dessus n’est remplie, l’échelon salarial est marqué comme NULL.

En résumé, l'objectif principal de cette instruction SQL est d'obtenir des informations sur les employés, de les classer selon leur niveau de salaire et de les trier en fonction de leur niveau de salaire.

5. Résumé

L'expression CASE dans GaussDB est un outil très utile qui peut être utilisé pour effectuer des opérations basées sur des conditions dans SQL, implémenter un jugement conditionnel et une logique de branchement, et optimiser davantage les requêtes et les opérations de base de données. Lors de l'écriture de code SQL, vous pouvez choisir de manière flexible un formulaire simple ou un formulaire de recherche à écrire en fonction des besoins spécifiques de l'entreprise, ce qui peut considérablement améliorer l'efficacité du codage et la lisibilité du code.

Ci-joint : Scénarios d'utilisation courants , tels que : balises de définition secondaires, statistiques de saturation, indicateurs de calcul, conversion de format de données , etc.

Cliquez pour suivre et découvrir les nouvelles technologies de Huawei Cloud dès que possible~

 

RustDesk a suspendu le service national Taobao (taobao.com) en raison d'une fraude généralisée, a repris le travail d'optimisation de la version Web, Apple a publié la puce M4, les lycéens ont créé leur propre langage de programmation open source en guise de cérémonie de passage à l'âge adulte - Les internautes ont commenté : S'appuyer sur Selon la défense, Yunfeng a démissionné d'Alibaba et envisage de produire à l'avenir la destination des programmeurs de jeux indépendants Visual Studio Code 1.89, a été officiellement annoncé par Huawei. L'ajustement du poste de Yu Chengdong a été cloué au « pilier de la honte FFmpeg ». « Il y a 15 ans, mais aujourd'hui il doit nous remercier - Tencent QQ Video venge sa honte précédente ? La station miroir open source de l'Université des sciences et technologies de Huazhong est officiellement ouverte à l'accès au réseau externe
{{o.name}}
{{m.nom}}

Je suppose que tu aimes

Origine my.oschina.net/u/4526289/blog/11106074
conseillé
Classement