首页 > 后端开发 > C++ > LINQ 的三元运算符如何复制 SQL 的 CASE 语句以进行条件数量更新?

LINQ 的三元运算符如何复制 SQL 的 CASE 语句以进行条件数量更新?

Mary-Kate Olsen
发布: 2025-01-03 16:48:43
原创
450 人浏览过

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板