首頁 >後端開發 >C++ >LINQ 的三元運算子如何複製 SQL 的 CASE 語句以進行條件數量更新?

LINQ 的三元運算子如何複製 SQL 的 CASE 語句以進行條件數量更新?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-03 16:48:43428瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn