複雜條件的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中文網其他相關文章!