--将字符串的前6位更换
select stuff('aaabbbcccddd',1,6,'wwweee')update G_CS_Customer set licensecode=stuff(licensecode,1,6,'010101') where  customersid='058006930'

解决方案 »

  1.   

    --用楼上这种方式
    或update G_CS_Customer set licensecode='010101' + right(licensecode,len(licensecode)-6) 
    where  customersid='058006930'
      

  2.   


    --用楼上这种方式update G_CS_Customer set licensecode='010101' + right(licensecode,len(licensecode)-6) 
    where  customersid='058006930'--或update G_CS_Customer set licensecode='010101' + substring(licensecode,7,len(licensecode)-6) 
    where  customersid='058006930'
      

  3.   

    或是这样吧!
    update G_CS_Customer set licensecode='010101' + cast (right(licensecode,len(licensecode)-6) as varchar(1000)) where  customersid='058006930';
      

  4.   

    报错,算数函数或运算"+"的操作数的数据类型不是数字
    licensecode是什么类型的,不是字符型吧!如果是数字型那怎么替换成前六位为‘010101’
      

  5.   

    建立视图吧!create view v_G_CS_Customer as select c_licensecode='010101'+substring(cast(licensecode as varchar(20)),7,len(licensecode)),* from G_CS_Customer
      

  6.   

    按照你的写法可以这样
    update G_CS_Customer 
    set licensecode=cast('010101' as varchar) + right(licensecode,6) 
    where  customersid='058006930'
    但是这样并不是你说的“把前6位数字替换为010101”把前6位数字替换为010101:
    update G_CS_Customer 
    set licensecode=stuff(licensecode,1,6,'010101') 
    where  customersid='058006930'
      

  7.   

    --奇怪的是,它報錯了,所以估計licensecode不是字符型吧...
      

  8.   

    方法很多
    update 表
    set 列名A=convert(varchar(6),'010101')+convert(varchar,stuff(列名A,1,6,''))