交换两条记录中某一列的值

songhuaqiang 2005-10-16 01:15:06
我想将表中两条记录的其中一列的数据交换,用SQL语句如何实现。
例如:
序号 姓名 年龄
1 王强 23
2 王刚 24
我想将两条记录的序号交换,即王强的序号为2,王刚的序号变为1,如何用一条SQL语句完成。
...全文
102 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
songhuaqiang 2005-10-18
  • 打赏
  • 举报
回复
楼上所说的我都试过了,但是都没有成功,报“无法插入NULL无值”。我的两个字段都是非空字段。
现在我采取了增加一个字段后,拷贝原字段的内容,然后删除原字段。
Well 2005-10-16
  • 打赏
  • 举报
回复
用update語句就行了
iwl 2005-10-16
  • 打赏
  • 举报
回复
update t set 序号= (case 姓名 when '王强'
then (select 序号 from 表 where 姓名='王刚')
when '王刚'
then (select 序号 from 表 where 姓名='王强')
end) as '序号'
,姓名
,年龄
from 表 t
vivianfdlpw 2005-10-16
  • 打赏
  • 举报
回复
select (case 姓名 when '王强'
then (select 序号 from 表 where 姓名='王刚')
when '王刚'
then (select 序号 from 表 where 姓名='王强')
end) as '序号'
,姓名
,年龄
from 表 t
lxzm1001 2005-10-16
  • 打赏
  • 举报
回复

update tablename set 序号=2 where 姓名=王强
update tablename set 序号=1 where 姓名=王刚

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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