Maison > développement back-end > C++ > Comment puis-je convertir des instructions SQL CASE en LINQ ?

Comment puis-je convertir des instructions SQL CASE en LINQ ?

Mary-Kate Olsen
Libérer: 2025-01-03 11:41:40
original
240 Les gens l'ont consulté

How Can I Convert SQL CASE Statements to LINQ?

Instructions LINQ CASE : une plongée plus approfondie

Dans LINQ (Language Integrated Query), les instructions CASE fournissent un moyen pratique d'évaluer plusieurs conditions et renvoyer des valeurs différentes en fonction de ces conditions. Pour convertir l'instruction CASE fournie en LINQ, vous pouvez exploiter des opérateurs conditionnels ternaires ou des expressions lambda pour obtenir des fonctionnalités similaires.

Considérez l'exemple suivant :

// Original CASE statement
osc_products.products_quantity =
CASE 
    WHEN itempromoflag <> 'N' THEN 100000
    WHEN itemcat1 IN ('1','2','31') AND itemsalestatus = 'S' THEN 100000
    WHEN itemsalestatus = 'O' THEN 0
    ELSE cds_oeinvitem.itemqtyonhand - cds_oeinvitem.itemqtycommitted 
END  
Copier après la connexion

Pour traduire cela en LINQ, nous peut employer des opérateurs conditionnels ternaires :

var newQuantity = (itempromoflag != 'N') ? 100000 :
    ((itemcat1 == '1' || itemcat1 == '2' || itemcat1 == '31') && itemsalestatus == 'S') ? 100000 :
    (itemsalestatus == 'O') ? 0 :
    cds_oeinvitem.itemqtyonhand - cds_oeinvitem.itemqtycommitted;
Copier après la connexion

Alternativement, les expressions lambda peuvent être utilisées pour un rendu plus concis représentation :

var newQuantity = (itempromoflag != 'N') ? 100000 :
    ((itemcat1 == '1' || itemcat1 == '2' || itemcat1 == '31') && itemsalestatus == 'S') ? 100000 :
    (itemsalestatus == 'O') ? 0 :
    () => cds_oeinvitem.itemqtyonhand - cds_oeinvitem.itemqtycommitted;
Copier après la connexion

Dans ces exemples, l'opérateur ternaire et les expressions lambda effectuent des vérifications conditionnelles similaires et renvoient la valeur appropriée en fonction de la condition remplie.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal