ホームページ >バックエンド開発 >C++ >LINQ を使用して SQL CASE ステートメントをレプリケートするにはどうすればよいですか?

LINQ を使用して SQL CASE ステートメントをレプリケートするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-29 03:50:13408ブラウズ

How Can I Replicate SQL CASE Statements Using LINQ?

CASE ステートメントの LINQ 実装

LINQ では、条件ステートメントを使用して、SQL にある CASE ステートメントの機能をシミュレートできます。特定の例を見てみましょう。

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  

この CASE ステートメントを LINQ に変換するには、次のアプローチを使用できます。

// Linq syntax
var query = from items in db.cdsItems
            where items.ItemHandHeldFlag.Equals("Y") && 
            items.ItemQtyOnHand - items.ItemQtyCommitted > 0
            select items;

// Alternate lambda syntax with expression body
var query2 = db.cdsItems
    .Where(items => items.ItemHandHeldFlag.Equals("Y") && 
            (items.ItemQtyOnHand - items.ItemQtyCommitted > 0))
    .Select(items => items);

このクエリは、CASE ステートメントの動作を効果的にシミュレートし、

LINQ は、在庫状況をより簡潔で保守しやすい方法で処理できることに注意してください。 SQL での CASE ステートメントの使用と比較した条件ステートメント。これにより、単一のステートメントを使用して複数の条件を評価し、目的の出力を生成できます。

以上がLINQ を使用して SQL CASE ステートメントをレプリケートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。