id 学号     姓名     性别     年龄
1 1001 张三 男 20
2 1002 李四 女 22
3 1003 王五 男 24
4 1004 刘六 女 26
5 1005 赵大 男 18怎样实现 张三和王五这两个名字互换?

解决方案 »

  1.   

    update tablename
    set  姓名=case  姓名 when '张三' then '王五' when '王五' then '张三' else 姓名 end
    where 姓名 in ('张三','王五')
      

  2.   

    Update TEST Set 姓名 = (Case 姓名 When  N'张三' Then N'王五' When N'王五' Then N'张三' Else 姓名 End)
      

  3.   

    Create Table TEST
    (id Int,
     学号 Char(4),
     姓名 Nvarchar(20),
     性别 Nvarchar(2),
     年龄 Int)
    Insert TEST Select 1, '1001', N'张三', N'男', 20
    Union All Select 2, '1002', N'李四', N'女', 22
    Union All Select 3, '1003', N'王五', N'男', 24
    Union All Select 4, '1004', N'刘六', N'女', 26
    Union All Select 5, '1005', N'赵大', N'男', 18
    GO
    Update TEST Set 姓名 = (Case 姓名 When  N'张三' Then N'王五' When N'王五' Then N'张三' Else 姓名 End)Select * From TEST
    GO
    Drop Table TEST
    --Result
    /*
    id 学号 姓名 性别 年龄
    1 1001 王五 男 20
    2 1002 李四 女 22
    3 1003 张三 男 24
    4 1004 刘六 女 26
    5 1005 赵大 男 18
    */
      

  4.   

    Haiwer(海阔天空) ( ) 信誉:138    Blog   加为好友  2007-07-14 11:40:36  得分: 0  
     
     
       加in可以少更新很多记录,如果考虑效率的话  
     
    ------------
    恩加了In的話,就可以去掉Else 了