我有一个表T_table1(月客户量ID VARCHAR(30),客户ID int),T_table1内容如下:
050442280000061027700000 13277
050444220000021034000000 13340
050425200000011007500000 13075

现在怎么样写语句把以上内容修改成?
         050442280000061327700000 13277
050444220000021334000000 13340
050425200000011307500000 13075
我的意思是要写语句把
050442280000061027700000 中的 10277用13277替换成050442280000061327700000?050444220000021034000000中的10340用13340替换成050444220000021334000000?050425200000011007500000中的10075用13075替换成050425200000011307500000?
Update T_table1
      Set  月客户量ID=
WHERE (SUBSTRING(月客户量ID, 16, 1) = 0))
请大家帮忙解决,谢谢!

解决方案 »

  1.   

    Update T_table1
          Set  月客户量ID= (SUBSTRING(月客户量ID, 1, 15) + '3' + SUBSTRING(月客户量ID, 17,8))
    WHERE (SUBSTRING(月客户量ID, 16, 1) = 0))
    月客户量ID要是字符型.要不然就是转换类型
      

  2.   

    Update @T_table1 
           Set 月客户量ID=Left(月客户量ID,14)+Cast(客户ID As Varchar)+Right(月客户量ID,5)
    Where SubString(月客户量ID, 16, 1) = 0
      

  3.   

    ---创建测试数据
    Declare @T_table1 Table(月客户量ID VARCHAR(30),客户ID int)
      Insert @T_table1 Select '050442280000061027700000', 13277
             Union All Select '050444220000021034000000', 13340
             Union All Select '050425200000011007500000', 13075
    Select * From @T_table1---更新
    Update @T_table1 
           Set 月客户量ID=Left(月客户量ID,14)+Cast(客户ID As Varchar)+Right(月客户量ID,5)
    Where SubString(月客户量ID, 16, 1) = 0      
    ---查询更新后的结果
    Select * From @T_table1/*
    (所影响的行数为 3 行)月客户量ID                         客户ID        
    ------------------------------ ----------- 
    050442280000061327700000       13277
    050444220000021334000000       13340
    050425200000011307500000       13075(所影响的行数为 3 行)
    */
      

  4.   

    update T_table1 set 月客户量ID = left(月客户量ID, 14) + cast(客户ID as varchar(5)) + right(月客户量ID, 5)