CASE 语句的 LINQ 实现
在 LINQ 中,您可以使用条件语句来模拟 SQL 中 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,可以使用以下方法:
// Linq syntax var query = from items in db.cdsItems where items.ItemHandHeldFlag.Equals("Y") && items.ItemQtyOnHand - items.ItemQtyCommitted > 0 select items; // Alternate lambda syntax with expression body var query2 = db.cdsItems .Where(items => items.ItemHandHeldFlag.Equals("Y") && (items.ItemQtyOnHand - items.ItemQtyCommitted > 0)) .Select(items => items);
此查询有效地模拟了 CASE 语句的行为并更新按预期从生产到商业站点的库存状态。
请注意,LINQ 提供了一种更简洁且可维护的方式来处理条件语句与在 SQL 中使用 CASE 语句相比。它允许您使用单个语句来评估多个条件并产生所需的输出。
以上是如何使用 LINQ 复制 SQL CASE 语句?的详细内容。更多信息请关注PHP中文网其他相关文章!