首页 > 其他分享 >update 修改数据时,依赖或者说需要根据另一个值来进行判断l

update 修改数据时,依赖或者说需要根据另一个值来进行判断l

时间:2024-06-19 16:21:36浏览次数:24  
标签:或者说 when update 库存量 TotalCount 值来 sql ProductId

在这点我们需要使用到的sql语句 

语法:

update 表名 set 某个值=case when @你要修改的值 > 表中的某一个值 then 成立之后要设置的值 else 前面没有成立设置的值 end

举例: 

我根据传入的年龄age来设置type为1还是0,1表示成年,0表示未成年

update Table set name=@name,type=case when @age>=18 then 1 else 0 end

明白了上面的语法之后,我们来看下面这个例子: 

// ProductInventory 是实体类
//StatusId -2表示库存为0,-1表示低于最小库存量,1表示正常库存量,2表示超过最大存款量
//TotalCount 数据库当前库存量
//MaxCount 最大库存量标识
//MinCount 最小库存量标识
//PorductId 就是id
//TotalCount=TotalCount+@TotalCount 表示我增加的库存加上数据库剩余的库存
//@TotalCount+TotalCount>MaxCount then 2 表示我传入的(@ToalCount)+原来数据库中剩余的库存(TotalCount)如果大于了设置的最大库存标识,那就向StatusId设置为2

public bool BePutInStorage(ProductInventory productInventory)
{
    string sql = "update ProductInventory set TotalCount=TotalCount+@TotalCount,StatusId=case";
    sql += " when @TotalCount+TotalCount>MaxCount then 2";
    sql += " when @TotalCount+TotalCount>=MinCount and @TotalCount+TotalCount<=MaxCount then 1";
    sql += " when @TotalCount+TotalCount<MinCount and @TotalCount+TotalCount>0 then -1";
    sql += " else -2";
    sql += " end";
    sql += " where ProductId=@ProductId";

    SqlParameter[] sp =
    {
        new SqlParameter ("@TotalCount", productInventory.TotalCount),
        new SqlParameter ("@ProductId", productInventory.ProductId),
    };
}

 

标签:或者说,when,update,库存量,TotalCount,值来,sql,ProductId
From: https://www.cnblogs.com/tlfe/p/18256443

相关文章

  • OB_MYSQL UPDATE 优化案例
    在工单系统上看到有一条SQL问题还没解决,直接联系这位同学看看是否需要帮忙。 慢SQL:UPDATEASETCORPORATION_NAME=(SELECTDISTINCTCORPORATION_NAMEFROM(SELECTCONTRACT_NO,COOP_SERVICE_TYPE,CORPORATION_NA......
  • Mongodb UPDATE, 使用$position指定向数组中插入新元素的位置
    学习mongodb,体会mongodb的每一个使用细节,欢迎阅读威赞的文章。这是威赞发布的第72篇mongodb技术文章,欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题,欢迎在文章下面点个赞,或者关注威赞。谢谢。本篇文章,我们聊聊在mongodb数组更新的操作符$po......
  • composer install、update、require 区别
    1.前言首先要搞清楚的一件事情是,所有的依赖都定义在composer.json中。在指定安装扩展包的时候,并不是非要指明一个精确的版本。那么就有可能发生这么一个情况,对于同一份composer.json,我们在不同时刻拉取到的依赖文件可能不同(因为composer会在满足条件的情况下去拉取最新的那份......
  • usoclient命令 参数 是一个用于管理 Windows Update 的命令行工具,可以在 Windows 10
    usoclient是一个用于管理WindowsUpdate的命令行工具,可以在Windows10和WindowsServer操作系统中使用。它提供了一种在命令行界面下执行Windows更新任务的方法,从而允许管理员和技术支持人员以更灵活和自动化的方式处理更新。为什么使用 usoclient 命令?自动化更新......
  • MyBatis-Plus更新字段为null时,update语句为null字段不生效的解决方法
    MyBatis-Plus更新字段为null时,update语句为null字段不生效的解决方法https://blog.csdn.net/y2020520/article/details/1328272061)修改MyBatis-Plus全局默认策略缺点:这样做会对所有的字段都忽略判断,如果一些字段不想要修改,但是传值的时候没有传递过来,就会被更新为nullmybatis-p......
  • MySQL操作 UPDATE、SELECT、UNION、IN、DISTINCT
    update更新所有人的年龄加一:updateusersetage=age+1;只更新某个:updateusersetage=age+1wherename='zhangsan';select查询select*fromuser;//一般不建议使用通配符selectname,age,sexfromuser;//根据键查找selectname,age,sexfromuserwheresex='......
  • SQL Server 2022 RTM 最新累积更新:Cumulative Update #13 for SQL Server 2022 RTM
    SQLServer2022RTM(最新累积更新)-基于Azure的持续性能和安全创新CumulativeUpdate#13forSQLServer2022RTM请访问原文链接:https://sysin.org/blog/sql-server-2022/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgSQLServer2022现已普遍可用2022......
  • 【VMware vSphere】安装配置Update Manager Download Service(UMDS)作为 vLCM 的下载存
    VMwarevSphereUpdateManagerDownloadService(UMDS)是vSphereLifecycleManager(vLCM)的可选模块。我在之前文章中提到这个功能,当vSphere环境能够连接Internet时,我们可以使用vLCM的在线Internet下载源获取修补程序,当vSphere环境不能连接Internet时,您可以在您的......
  • VMware vSphere 8.0 Update 3 下载 - 企业级工作负载平台
    VMwarevSphere8.0Update3下载-企业级工作负载平台ESXi8.0U3&vCenterServer8.0U3请访问原文链接:https://sysin.org/blog/vmware-vsphere-8-u3/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org企业工作负载引擎vSphere获得企业工作负载引擎的强大功能。......
  • AOP简化公共属性create_time,create_user,update_time,update_user记录的重复代码
    处理这些公共字段,需要在每一个业务方法中进行操作,编码相对冗余、繁琐使用AOP切面编程,实现功能增强,来完成公共字段自动填充功能。1.2实现思路在实现公共字段自动填充,也就是在插入或者更新的时候为指定字段赋予指定的值,使用它的好处就是可以统一对这些字段进行处理,避免了重......