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中文网其他相关文章!