ホームページ >バックエンド開発 >C++ >LINQ の三項演算子は、条件付き数量更新のために SQL の CASE ステートメントをどのように複製できますか?

LINQ の三項演算子は、条件付き数量更新のために SQL の CASE ステートメントをどのように複製できますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-03 16:48:43474ブラウズ

How Can LINQ's Ternary Operator Replicate SQL's CASE Statement for Conditional Quantity Updates?

LINQ の Case ステートメント: 実践的な例

LINQ の強力な CASE ステートメントは、クエリ内の条件評価のための簡潔な構文を提供します。 LINQ で在庫ステータスを更新するための次の要件を考慮してください。

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  

LINQ では、この CASE ステートメントは次のように記述できます。

var query = from items in db.cdsItems
              where items.ItemHandHeldFlag.Equals("Y") &
              items.ItemQtyOnHand - items.ItemQtyCommitted > 0
              select new
              {
                  Quantity = items.ItemPromoflag != "N" ? 100000 :
                              items.Itemcat1 == "1" || items.Itemcat1 == "2" || items.Itemcat1 == "31" && items.Itemsalestatus == "S" ? 100000 :
                              items.Itemsalestatus == "O" ? 0 : items.Itemqtyonhand - items.Itemqtycommitted
              };

このクエリは CASE ステートメントの条件を効果的に評価し、匿名型の Quantity プロパティに適切な値を割り当てます。

LINQ ステートメント全体では、次のような追加の基準を処理することに注意してください。 ItemHandHeldFlag と利用可能条件。

以上がLINQ の三項演算子は、条件付き数量更新のために SQL の CASE ステートメントをどのように複製できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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