
SQL数据库表的更新问题
update表1setbalance=balance+(selectamountfrom表2wherecardnumber='111111'andcardclose='1...
update 表1
set balance=balance+(select amount from 表2 where cardnumber='111111' and cardclose= '111111' and estate='可充值')
where account='1111111111111111111' and account.estate='正常'
当中间这句select amount from recharge where cardnumber='111111'and cardclose= '111111' and estate='可充值')不成立时 表1竟然还能更新?直接把表1中balance这个字段值该为了NULL!! 请问如何避免?就是当条件不成立时表1中的balance值不变
recharge表就是表2 展开
set balance=balance+(select amount from 表2 where cardnumber='111111' and cardclose= '111111' and estate='可充值')
where account='1111111111111111111' and account.estate='正常'
当中间这句select amount from recharge where cardnumber='111111'and cardclose= '111111' and estate='可充值')不成立时 表1竟然还能更新?直接把表1中balance这个字段值该为了NULL!! 请问如何避免?就是当条件不成立时表1中的balance值不变
recharge表就是表2 展开
6个回答
展开全部
update 表1
set balance=balance+amount
from 表2 where 表2.cardnumber='111111' and 表2.cardclose= '111111' and 表2.estate='可充值'
and 表1.account='1111111111111111111' and 表1.estate='正常'
按你的写法,表2条件不成立,子查询取出来值为null,自然更新成空了
set balance=balance+amount
from 表2 where 表2.cardnumber='111111' and 表2.cardclose= '111111' and 表2.estate='可充值'
and 表1.account='1111111111111111111' and 表1.estate='正常'
按你的写法,表2条件不成立,子查询取出来值为null,自然更新成空了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?

2025-03-05 广告
华天软件PDM近30年实施经验,服务客户数千家,功能完善,提高设计复用率,降低研发成本40%,实现跨部门信息共享+无纸化研发+缩短产品研发周期+降低成本,为企业构建数字化智能制造全面应用,打好坚实基础,加速企业数字化转型,更多资料详情咨询4...
点击进入详情页
本回答由华天软件提供
展开全部
在SQL Server中有效,其它的数据库中语句可能会有不同,处理原理一样:
set
balance=
balance+ISNULL(
(select amount from 表2 where cardnumber='111111' and cardclose= '111111' and estate='可充值')
,'')
where
account='1111111111111111111'
and account.estate='正常'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2017-08-05
展开全部
update TableA set NameSpell=dbo.fn_GetPinyin(name) UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以用case when语句
balance=balance+(select case when amount is null then 0 else amount end from 表2 where cardnumber='111111' and cardclose= '111111' and estate='可充值')
balance=balance+(select case when amount is null then 0 else amount end from 表2 where cardnumber='111111' and cardclose= '111111' and estate='可充值')
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是不是不成立时,你的语句变成了balance+null?
你在后面做一个类似isnull为0的判断呢。
你在后面做一个类似isnull为0的判断呢。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询