中易网

sql语句,存储过程,智能更新

答案:5  悬赏:40  
解决时间 2021-02-17 18:04
有一个存储过程,有参数id,username,name,age
里面只有一句update 表 set username = @username 。。。。。。 where id=@id
问题来了
当@name为空的时候不更新name,当@name不为空的时候,同时也更新name
age也一样操作
这个存储过程怎么写
求高人
最佳答案
简单啊,用if判定一下就可以了啊,在update之前先判定name是否为空:
if isnull(@name,'')!=''
update 表 set username = @username 。。。。。。 where id=@id
同等道理,age也一样的做就可以了。当然,判定条件并列的话,你可以一起判定
全部回答
可以先将多个商品id拼成一个字符串("3,4,5")再传进去 create procedure pro_deleteproduct @uid int , @pids varchar(50) as declare @sql varchar(200) begin set @sql= 'delete from products where productid = '+ convert(varchar(20),@uid) +' and productid in ('+@pids+')' --print @sql exec (@sql) end go
额,我觉得你这个就是一个简单的判断啊,@name为空不执行update语句,不为空执行update语句,加上一个if语句就可以了么 oracle 写法 if @name is not null update 表 set username = @username 。。。。。。 where id=@id end if;
如果想使用多条语句的话, 有两种方法: (1)使用if语句: 分别判断@name和@age是否为空, 然后根据不同的情况分别使用不同的update语句进行数据修改(两个判断条件组合的话, 应该有4种不同结果). 比如其中一种为: if(@name="" and @age!="") {update...set username=@username, age=@age where id=@id} (2)使用多条update语句,分别对不同的字段进行修改. 此时就需要把更新条件都放到where语句中. 因为需要更新的3个字段的"完整判定条件"都不同, 所以需要3条update语句: update...set username=@username where id=@id update...set name=@name where id=@id and @name!="" update...set age=@age where id=@id and @age!="" 从上面的方法也可以看出, where子句对于条件的使用, 仅限于从表中筛选行. 筛选出来后, set子句对每一行的处理方式都是一样的. 所以, 如果想只用一条update语句完成整个功能, 就必须在where中一次性把所有"可能要修改"的行都筛选出来. 因为这里还要求对不同的行进行不同的处理, 所以, 只能把条件控制加到set子句中. 可以使用case函数: update...set username=@username, name=(case @name when "" then name else @name end) age=(case @age when "" then age else @age end) where id=@id
不知道是不是这个意思: update 表 set username=@username,name=case when @name<>'' then @name else name end,age=case when @age<>'' then @age else age end where id=@id
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
如何通过单片机和开关单独控制继电器
钓鱼用的小黄面面是什么做成的,我想自己做
phones/output的接口适合什么样的耳机?
因上海农村建房71号2016年更改条款,现在郊区
清蒸午鱼的做法,清蒸午鱼怎么做好吃,清蒸午
凤豆山在什么地方啊,我要过去处理事情
社保把我的户口性质外地城镇与本地城镇搞错了
心脏病突发,叫救护车,最好使用A手机B固定电话
有什么偏方可以临时减缓心跳速度....心律 心
皇马拉莫斯的女友照片
行xing第四声怎么组词
被加热的液体超过试管的1\3,试管会破吗
美的榨汁搅拌机怎么榨豆浆
这张图上是阉了哪里?百度打搜索”阉”,找前
综漫耽美总受,杜绝一切第一人称和万人迷小白
推荐资讯
我对象叫曹庆庆,想为她改个微信网名,求解
少儿英语培训班哪家比较便宜啊?
KEPU的bmx怎么样,与haro f1相比呢?
对女孩来说学历真的很重要吗?长辈们常说女的
在中国儿童六岁开始上学。的英文
苹果6来电界面是一张图片或照片的是怎么弄得
如何一天赚三千块
怎么才能干扰网吧的监控器
杰鱼轩鱼庄我想知道这个在什么地方
我是沈阳的,有一次坐204看到路边有一家冬冬
我现在辞职在家,想找一份工作,但是我不知道
从香港到广州最快要多久
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?