Remplir des colonnes conditionnelles à l'aide d'une instruction Case dans MySQL
Lorsque vous travaillez avec des tables de base de données, il devient souvent nécessaire de créer de nouvelles colonnes qui se remplissent dynamiquement données basées sur des conditions spécifiques. MySQL fournit l'instruction CASE, qui permet aux utilisateurs d'évaluer et d'attribuer des valeurs aux colonnes de manière conditionnelle.
Considérez un scénario dans lequel une table appelée « tbl_transaction » existe avec des colonnes pour l'ID de transaction, le type d'action (dépense ou revenu), l'en-tête , et le montant. L'objectif est de générer deux colonnes supplémentaires : Income Amt et Expense Amt, qui doivent être renseignées avec les montants appropriés en fonction du type de transaction.
Pour y parvenir à l'aide d'une requête SQL, l'instruction CASE peut être utilisée :
SELECT id, action_heading, CASE WHEN action_type = 'Income' THEN action_amount ELSE NULL END AS income_amt, CASE WHEN action_type = 'Expense' THEN action_amount ELSE NULL END AS expense_amt FROM tbl_transaction;
Cette requête évalue la colonne action_type pour chaque transaction et, en fonction de sa valeur, attribue le montant correspondant à la colonne Montant des revenus ou Montant des dépenses. Lorsque l'action est Revenu, le montant_action est affecté au Montant du revenu, tandis que pour les Dépenses, il est affecté au Montant des dépenses. Pour les actions qui ne sont ni des revenus ni des dépenses, NULL est attribué aux deux colonnes.
En conséquence, la requête produit une table de sortie avec les colonnes souhaitées, où chaque ligne contient l'ID de transaction, l'en-tête et le montant du revenu ( le cas échéant) et le montant des dépenses (le cas échéant). Cela permet une analyse et une catégorisation faciles des transactions en fonction de leurs types.
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!