update 子查询

今天遇到了一个小问题啊,有数据库里有的东西要替换一下,其实是挺简单记录也不是很多啊,也许手动也能完成,但我是写程序怎么可以忍受有规律的事不用程序 来完成竟然去手动完成呢

我用的数据库是sql server 2005

先简单的介绍一下问题
要更新的字段是 upname 这的值是当前记录ID的下一条记录的 monstername 挺简单的吧,就是这样的

刚开始我写的sql语句是这样的
update dccwms_troops set upname=(select monstername from dccwms_troops A where A.id=id+1) where id % 2 =1
这根本是不行的因为A.id=id+1 还是A中的ID啊,这是我想到个update表也建个别名于是sql语句如下
update dccwms_troops B set upname=(select monstername from dccwms_troops A where A.id=B.id+1) where id % 2 =1
唉还是有错误B附进有语法错误啊

自己是想不出什么办 法了,就上网查了,找到也有跟我第二种写法一样的,真是奇怪有错误的也随便放上来啊,无意用看到了update 还可以用from 这时我突然想from后不就可以加表的别名的,那么应该就可以,哈哈
于是写下sql如下
update B set upname=(select monstername from dccwms_troops A where A.id=B.id+1) from dccwms_troops B where id % 2 =1
支持成功,哈哈成功,稍微有点错误自己调整一下就完成了,主要是id大于 126后的不需要这样处理了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值