Application des instructions CASE pour la logique conditionnelle
Maintenant que vous avez une compréhension de base des instructions CASE dans Hive, approfondissons comment vous pouvez les appliquer pour la logique conditionnelle dans vos tâches de traitement de données.
Instructions CASE simples
La forme la plus simple d'une instruction CASE dans Hive implique une seule expression évaluée contre un ensemble de conditions. Voici un exemple :
SELECT
customer_name,
CASE
WHEN age < 18 THEN 'Mineur'
WHEN age >= 18 AND age < 65 THEN 'Adulte'
ELSE 'Sénior'
END AS customer_category
FROM customer_table;
Dans cet exemple, l'instruction CASE
évalue la colonne age
et attribue une catégorie de client en fonction de la plage d'âge.
Instructions CASE recherchées
Hive prend également en charge une forme plus avancée d'instructions CASE, appelées instructions CASE "recherchées". Cela vous permet d'évaluer plusieurs expressions dans les clauses WHEN
, offrant une plus grande flexibilité dans votre logique conditionnelle. Voici un exemple :
SELECT
product_name,
CASE
WHEN quantity < 10 THEN 'Stock bas'
WHEN quantity >= 10 AND quantity < 50 THEN 'Stock moyen'
WHEN quantity >= 50 AND quantity < 100 THEN 'Stock élevé'
ELSE 'Stock très élevé'
END AS stock_level
FROM product_table;
Dans cet exemple, l'instruction CASE
évalue la colonne quantity
et attribue un niveau de stock en fonction de la plage de quantité.
Instructions CASE imbriquées
Vous pouvez également imbriquer des instructions CASE à l'intérieur d'autres instructions CASE pour créer une logique conditionnelle plus complexe. Cela peut être utile lorsque vous avez besoin d'appliquer plusieurs couches de prise de décision. Voici un exemple :
SELECT
order_id,
CASE
WHEN order_status = 'EN ATTENTE' THEN
CASE
WHEN order_date < DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY) THEN 'En retard'
ELSE 'En attente'
END
WHEN order_status = 'EXPÉDIÉ' THEN 'Expédié'
WHEN order_status = 'LIVRÉ' THEN 'Livré'
ELSE 'Annulé'
END AS order_status_label
FROM orders_table;
Dans cet exemple, l'instruction CASE
externe évalue la colonne order_status
, et l'instruction CASE
interne évalue en outre la colonne order_date
pour les commandes en attente.
En maîtrisant les techniques présentées dans cette section, vous serez en mesure d'utiliser les instructions CASE pour implémenter une logique conditionnelle complexe dans vos requêtes Hive, rendant votre traitement de données plus efficace et performant.