Maison  >  Article  >  base de données  >  Utilisation de Case When dans SQL

Utilisation de Case When dans SQL

angryTom
angryTomoriginal
2020-02-18 13:12:08182535parcourir

En SQL, l'instruction « Case When » est utilisée pour sélectionner et juger. Pendant l'exécution, les conditions sont d'abord jugées, puis les opérations correspondantes sont effectuées en fonction des résultats du jugement « CASE field WHEN condition 1 » ; ALORS opération 1 QUAND Condition 2 ALORS opération 2...ELSE opération n END;".

Utilisation de Case When dans SQL

L'environnement d'exploitation de ce tutoriel : système Windows 7, version Microsoft SQL Server 2016, ordinateur Dell G3.

Utilisation de case when en SQL

case when est similaire au jugement if else et à l'instruction switch case dans les langages de programmation. Lorsque cette instruction est exécutée, la condition est d'abord jugée, puis l'opération correspondante est effectuée sur la base du résultat du jugement.

Le cas a deux formats : la fonction de cas simple et la fonction de recherche de cas.

Fonction Simple Case :

CASE sex
WHEN ‘1’ THEN ‘男’
WHEN ‘0’ THEN ‘女’
ELSE ‘其他’ END

Fonction de recherche de cas :

CASE WHEN sex = ‘1’ THEN ‘男’
WHEN sex = ‘0’ THEN ‘女’
ELSE ‘其他’ END

Évidemment, la fonction Simple Case est plus concise, mais elle ne convient qu'à de tels champs uniques Comparaison de valeurs uniques, et l'avantage de la fonction de recherche de cas est qu'elle est applicable à toutes les situations de comparaison.

Il y a un autre problème qui mérite attention. Une fois que la fonction Case remplit une certaine condition, les conditions restantes seront automatiquement ignorées. Par conséquent, même si plusieurs conditions sont remplies, seule la première sera reconnue lors de l'exécution. une condition.

(Le site Web PHP chinois propose un grand nombre de tutoriels SQL gratuits, tout le monde est invité à les apprendre !)

Lorsque vous utilisez CASE WHEN, vous pouvez le traiter comme une logique Pour les champs anonymes, la valeur du champ est confirmée en fonction de conditions. Lorsque vous devez utiliser le nom du champ, vous pouvez utiliser as pour définir un alias. Ceci est encore très abstrait. Regardez le cas d’utilisation de CASE WHEN ci-dessous pour que ce soit clair.

Scénarios d'utilisation

1. Les données connues peuvent être regroupées et analysées d'une certaine manière.

Utilisation de Case When dans SQL

Sur la base des données démographiques de ce pays, comptez la population de l’Asie et de l’Amérique du Nord. Utilisez le SQL suivant :

SELECT  CASE country
WHEN '中国'     THEN '亚洲'
WHEN '印度'     THEN '亚洲'
WHEN '日本'     THEN '亚洲'
WHEN '美国'     THEN '北美洲'
WHEN '加拿大'  THEN '北美洲'
WHEN '墨西哥'  THEN '北美洲'
ELSE '其他' END as '洲' , SUM(population) as '人口'
FROM test
GROUP BY CASE country
WHEN '中国'     THEN '亚洲'
WHEN '印度'     THEN '亚洲'
WHEN '日本'     THEN '亚洲'
WHEN '美国'     THEN '北美洲'
WHEN '加拿大'  THEN '北美洲'
WHEN '墨西哥'  THEN '北美洲'
ELSE '其他' END;

Utilisation de Case When dans SQL

Les deux CASE WHEN ici sont équivalents à un champ, mais il convient de mentionner que la valeur THEN du deuxième CASE WHEN There Il n'est pas nécessaire de préciser de quel continent il s'agit, il est simplement utilisé pour regrouper les enregistrements, donc la valeur après THEN ne peut distinguer que ces trois types d'enregistrements. GROUP BY peut également s'écrire :

GROUP BY CASE country
WHEN '中国'     THEN 0
WHEN '印度'     THEN 0
WHEN '日本'     THEN 0
WHEN '美国'     THEN 1
WHEN '加拿大'  THEN 1
WHEN '墨西哥'  THEN 1
ELSE 2 END;

2. Utilisez. une instruction SQL Effectuer des regroupements dans différentes conditions.

contient les données suivantes :

Utilisation de Case When dans SQL

Utilisez la fonction Cas pour regrouper par pays et par sexe. Utilisez le SQL suivant :

SELECT country,
SUM( CASE WHEN sex = '1' THEN population ELSE 0 END  ),  --男性人口
SUM( CASE WHEN sex = '2' THEN population ELSE 0 END )   --女性人口
FROM  Table_A
GROUP BY country;

pour obtenir les résultats suivants :

Utilisation de Case When dans SQL

Expliquez le premier CAS QUAND :

CASE WHEN sex = '1' THEN
population ELSE 0 END

Lorsque le sexe de l'enregistrement est 1, la valeur de ce champ est la valeur de population de l'enregistrement, sinon elle est 0, donc la population masculine d'un pays peut être calculée.

Pour plus de tutoriels SQL et autres Introduction à la programmation, veuillez continuer à prêter attention au site Web PHP chinois ! !       

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