可不可以把两条对同一个表的更新语句合在一起??解决就给分

wolfsuper411 2004-08-11 04:21:38
对同一张表的两个记录(a,b)进行操作,表里有个字段是记录顺序的,我有两个记录,a的顺序字段值是7,b的顺序字段值是8,我要把两个顺序换换,把a的顺序字段值变成8,b的顺序字段值变成7,不知道怎么写,可以用一句SQL语句写出来????
...全文
159 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
wolfsuper411 2004-08-13
  • 打赏
  • 举报
回复
有办法吗??
zhang21cnboy 2004-08-11
  • 打赏
  • 举报
回复
米的方法还是错误的。
alexlex 2004-08-11
  • 打赏
  • 举报
回复
米的方法巧妙~oo~開拓思路啊
wolfsuper411 2004-08-11
  • 打赏
  • 举报
回复
有个人给我这么个方法,用DECODE函数可以,但我不知道怎么写
wolfsuper411 2004-08-11
  • 打赏
  • 举报
回复
我也觉得是是不可能,就是想想会不会有SQL语句可以实现
phoenix2xp 2004-08-11
  • 打赏
  • 举报
回复
不明白楼主的意思啊,是要用一个update语句实现你的目的吗?这好像不可能哦!
chancelin 2004-08-11
  • 打赏
  • 举报
回复
begin
select max(id) into max_id from table_a
update table_a set id=max_id+1 where id=8;
update table_a set id=8 where id=7;
update table_a set id=7 where id=max_id+1;

end;
yunxiang 2004-08-11
  • 打赏
  • 举报
回复
楼上的。。厉害,我怎么没想到阿。

不过是主健也没有问题的。我适过的。
ChDw 2004-08-11
  • 打赏
  • 举报
回复
如果你的表的ID不是主键就比较容易
update A set ID=15-ID where ID=8 or ID=7;
yunxiang 2004-08-11
  • 打赏
  • 举报
回复
楼上的。你 认为update table_a set id=id+1 where id>100

这条可以执行吗?

zhang21cnboy 2004-08-11
  • 打赏
  • 举报
回复
楼上的那种方法。让人想吐阿。你怎么知道数据库里面没有id=9的纪录?
zhang21cnboy 2004-08-11
  • 打赏
  • 举报
回复
你要这么高的话,那就不是互换了?最后都变成8了。
我认为你的这个有求根本不能实现。如果你只能用id表示一个记录的话。
wolfsuper411 2004-08-11
  • 打赏
  • 举报
回复
怎么写??
xuyang821225 2004-08-11
  • 打赏
  • 举报
回复
begin
update table_a set id=9 where id=8;
update table_a set id=8 where id=7;
update table_a set id=7 where id=9;

end;
singnet 2004-08-11
  • 打赏
  • 举报
回复
写个存储过程不就行了
xuyang821225 2004-08-11
  • 打赏
  • 举报
回复
这样不是先改了,你的第二句就有错了啊
再说 如果是字段是主键,也不能相同啊
wolfsuper411 2004-08-11
  • 打赏
  • 举报
回复
只要能写出来就可以,对了最好不要用存储过程
xuyang821225 2004-08-11
  • 打赏
  • 举报
回复
可以用一个中间的顺序字段过度吗?
yunxiang 2004-08-11
  • 打赏
  • 举报
回复
begin
update table_a set id=7 where id=8;
update table_a set id=8 where id=7;
end;

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧