LINQ CASE 語句:深入探究
在LINQ(語言整合查詢)中,CASE 語句提供了一個方便的方法來評估多個條件和根據這些條件傳回不同的值。要將提供的 CASE 語句轉換為 LINQ,可以利用三元條件運算子或 lambda 表達式來實現類似的函數。
考慮以下範例:
// Original CASE statement 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,我們可以使用三元條件運算子:
var newQuantity = (itempromoflag != 'N') ? 100000 : ((itemcat1 == '1' || itemcat1 == '2' || itemcat1 == '31') && itemsalestatus == 'S') ? 100000 : (itemsalestatus == 'O') ? 0 : cds_oeinvitem.itemqtyonhand - cds_oeinvitem.itemqtycommitted;
或者,lambda 表達式可用於更多簡潔表示:
var newQuantity = (itempromoflag != 'N') ? 100000 : ((itemcat1 == '1' || itemcat1 == '2' || itemcat1 == '31') && itemsalestatus == 'S') ? 100000 : (itemsalestatus == 'O') ? 0 : () => cds_oeinvitem.itemqtyonhand - cds_oeinvitem.itemqtycommitted;
在這些範例中,三元運算子和lambda 表達式執行類似的條件檢查,並根據滿足的條件傳回適當的值。
以上是如何將 SQL CASE 語句轉換為 LINQ?的詳細內容。更多資訊請關注PHP中文網其他相關文章!