sql同一表里同一个字段下的两条数字互换

比如aa表里abc字段下两条数字123和456 123换成456 456换成123 前提是在这条命令的基础上,因为我在做学生表:比如 select * abc where shuzi=✀2✀&& mingzi=✀王刚✀;这个是查询出来的数据,在这个表里是有xuehao这个字段 想把王刚这条数据中的学号xuehao字段下的123互换相同表里的某个学生的学号456在adc 这个表里是有xuehao这个字段的 就是这条数据中 有个学号字段 把学号字段下的123互换带有456的数据中 123变456 456变123就是上面的的这张图如何实现两条数据互换
2026年09月28日 20:00
有2个网友回答
网友(1):

可以这样考虑:

  1. 定义一个变量a,赋值123

  2. 定义一个变量b,赋值456

  3. 把王刚的学号修改成变量b的值

  4. 把学号为456的修改成变量a的值

  5. 代码参考如下,未编译:

    declare @a int set @a=123
    declare @b int set @b=456
    update abc
    set xuehao=@b
    where xingming='王刚'
    update ab
    set xuehao=@a
    where xuehao=456

网友(2):

以下是更新的SQL语句,请采纳

UPDATE abc SET xuehao = if(xuehao='123','456','123') WHERE xuehao IN ('123','456');