现在我有一张表T1是这样的
    A           B
  MS001         0
  MS002         0
  MG001         0
  MG002         0
我现在UPDATE 字段B :字段A为MS开头的设为0.01,字段A为MG开头的设为0.02,理想结果为
     A           B
  MS001         0.01
  MS002         0.01
  MG001         0.02
  MG002         0.02

解决方案 »

  1.   


    UPDATE T1
    SET B = CASE LEFT(A,2) WHEN 'MS' THEN 0.01 ELSE '0.02' END
      

  2.   

    update T1 set B=(case when left(A,2)='MS' then 0.01 when lwft(A,2)='MG' then 0.02 end)
      

  3.   

     update T1 set B=( case substring(A,1,2) when 'MS' then 0.01 else 0.02 end)
      

  4.   

    可不可以不用else,因为还有其他纪录,比如以ML开头的,我不想更新他们的值,该怎么做
      

  5.   

    UPDATE T1
    SET B = CASE LEFT(A,2) WHEN 'MS' THEN 0.01 ELSE '0.02' END 
    where left(a,2)='ms'
      

  6.   


    declare @t1 table
    ( A varchar(8),
      B decimal(5,2)
    )insert into @t1 select 'MS001',0
         union all  select 'MS002',0
         union all  select 'MG001',0
         union all  select 'MG001',0update @t1 set B= case when A like'%MS%' then 0.01 
                           when A like '%MG%' then 0.02
                       else 1 end
    select * from @t1
      

  7.   


    update t1 set b=case when left(a,2)='MS' then o.o1 when left(a,2)='MG' then 0.02 end 
      

  8.   

    UPDATE T1 SET B = CASE LEFT(A,2) WHEN 'MS' THEN 0.01 WHEN 'MG'THEN 0.02 WHEN 'ML' THEN 0 END
      

  9.   

    UPDATE T1 SET B = (CASE LEFT(A,2) WHEN 'MS' THEN 0.01 
                                      WHEN 'MG'THEN 0.02 
                                      WHEN 'ML' THEN  0.03
                                      WHEN      THEN         --还有其他条件就这样添加
                        END )
      

  10.   


    UPDATE T1 SET B = (CASE LEFT(A,2) WHEN 'MS' THEN 0.01 
                                      WHEN 'MG'THEN 0.02 
                                      WHEN 'ML' THEN  0.03 
                                      WHEN      THEN        
                                      when then
                                           else 0.10
                        END )
      

  11.   

    用WHEN就可以了
    0.01  0.02种类多么?
      

  12.   

    update T1 set B=
    (case 
    when left(A,2)='MS' then 0.01 
    when left(A,2)='MG' then 0.02 
    --这里可以添加其它的种类
    end)
      

  13.   

    写个CASE语句
    14楼发广告。
      

  14.   

    UPDATE t SET B = '0.0' + RTRIM(CHARINDEX((SUBSTRING(A,2,1)),'SG'))