ホームページ >バックエンド開発 >C++ >C# を使用して LINQ で SQL CASE ステートメントを実装する方法

C# を使用して LINQ で SQL CASE ステートメントを実装する方法

Susan Sarandon
Susan Sarandonオリジナル
2024-12-27 22:42:10138ブラウズ

How to Implement a SQL CASE Statement in LINQ using C#?

複雑な条件に対する LINQ CASE ステートメントの実装

CASE ステートメントは、複数の条件を評価し、それぞれのケースに基づいて特定の結果を返す強力なツールです。 。この記事は、LINQ for C# で 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 に変換するには、次の構文を使用できます。

query.Select(item => item.Products_Quantity = 
  item.ItemPromoFlag != 'N' ? 100000 : 
  (item.ItemCat1 == "1" || item.ItemCat1 == "2" || item.ItemCat1 == "31") && item.ItemSaleStatus == "S" ? 100000 : 
  item.ItemSaleStatus == "O" ? 0 : 
  cds_oeinvitem.ItemQtyOnHand - cds_oeinvitem.ItemQtyCommitted);

この LINQ 式三項演算子を使用して CASE ステートメントの条件をエミュレートし、対応する値を Products_Quantity プロパティに設定します。結果は、指定された条件に基づいて在庫状況を更新するクエリです。

提供されたコード スニペットは、適切なデータ ソースを使用して LINQ クエリがすでに確立されていることを前提としていることに注意してください。コード内のクエリ変数は、作成した LINQ クエリを表す必要があります。

以上がC# を使用して LINQ で SQL CASE ステートメントを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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