我又一个数据表  表结构如下: id    BM     Name
  1   一部    AAA  2   二部    BBB  3   二部    CCC  4   一部    BBB我想写一个修改语句 一个语句就可以把 一部 修改成 二部 把 二部 修改成 一部 相互转换着修改

解决方案 »

  1.   

    UPDATE TB SET BM=CASE WHEN BM ='一部' THEN '二部' WHEN BM ='二部' THEN '一部' END 
      

  2.   

    update tb 
    set BM=case BM when '一部' then '二部' when '二部' then '一部' else BM end
      

  3.   

    update tb set BM=replace(BM,'一','1')
    update tb set BM=replace(BM,'二','一')
    update tb set BM=replace(BM,'1','二')
      

  4.   

    IF OBJECT_ID('TB')IS NOT NULL DROP TABLE TB
    GO
    CREATE TABLE TB(id INT,    BM NVARCHAR(10),   Name VARCHAR(10)) 
    INSERT TB SELECT   1,  N'一部',    'AAA' 
    INSERT TB SELECT   2,  N'二部' ,   'BBB' 
    INSERT TB SELECT   3,  N'二部' ,   'CCC' 
    INSERT TB SELECT   4,  N'一部' ,   'BBB' UPDATE TB SET BM=CASE WHEN BM =N'一部' THEN N'二部' WHEN BM =N'二部' THEN N'一部' END 
    SELECT * FROM TB
    /*id          BM         Name       
    ----------- ---------- ---------- 
    1           二部         AAA
    2           一部         BBB
    3           一部         CCC
    4           二部         BBB
    */
      

  5.   

    update tb
    set bm=case when bm='一部' then '二部' when bm='二部' then '一部' else bm end
      

  6.   


    declare @table table (id int,BM varchar(4),Name varchar(3))
    insert into @table
    select 1,'一部','AAA' union all
    select 2,'二部','BBB' union all
    select 3,'二部','CCC' union all
    select 4,'一部','BBB'select * from @tableupdate @table set 
    BM=(case BM when '一部' then '二部' when '二部' then '一部' else BM end)select * from @table
      

  7.   

    --疏忽 
    UPDATE TB SET BM=CASE WHEN BM =N'一部' THEN N'二部' WHEN BM =N'二部' THEN N'一部'
    ELSE BM END
      

  8.   

    update a  set bm=b.bm from tb6 a,tb6 b where a.bm<>b.bm
      

  9.   

    UPDATE TB SET BM=CASE WHEN BM =N'一部' THEN N'二部' WHEN BM =N'二部' THEN N'一部'
    ELSE END
      

  10.   

    1楼正解, 在MSSQL中那个写法完全正确, 我是经常这么用的, 但在Oracle中不行的