如 题 , 例如,  '10001010' ,要 把 位置为 5 的 1  替换成 0 ,替换 后 ,是 '10000010' ,用 什么 函数 ?replace()函数 好像 不行 ,不能确定 替换的位置 。请 大家 帮忙 !

解决方案 »

  1.   

    应该substring +replace 吧呵呵 
      

  2.   


    update tb
    set col=stuff(字段,5,1,'0')
    where substring(字段,5,1)='1'
      

  3.   

    update tb
    set col = left(col,4) + '0' + substring(col,6,len(col))
      

  4.   

    SELECT LEFT(LTRIM(COL),4)+
    REPLACE(RIGHT(LEFT(LTRIM(COL),5),1),'1','0')+
    RIGHT(LEN(LTRIM(COL))-5) AS COL 
    FROM TB
      

  5.   

    加个条件不?
    update tb 
    set col = left(col,4) + '0' + substring(col,6,len(col))
    where substring(col,5,1) = '1'
      

  6.   


    declare @s varchar(20)
    set @s='10001010' 
    select stuff(@s,5,1,'0')
    /*--------------------
    10000010(1 行受影响)*/
      

  7.   


    declare @str varchar(20)
    set @str='10001010'select stuff(@str,5,1,'0')--------------------
    10000010
      

  8.   

    --建表测试
    select '10001010' as cl into test
    --查看效果
    select cl '原数据',
    rtrim(convert(char,left(cl,4)))+'0'+rtrim(convert(char,substring(cl,6,len(cl))))'需要的数据'
    from test
    ---开始更新
    update test 
    set cl=rtrim(convert(char,left(cl,4)))+'0'+rtrim(convert(char,substring(cl,6,len(cl))))
    楼主可以结贴了