sql2000 如何替换连续数 谢谢表1名称  数据
1      bcbcbcbbbbbbbbbbccbbcbbbcbbbbcbcbb
2      bbbbbbccbbcbbbcbbbbcbcbbbbcbcbcbcb
........
如何替换表1数据里连续的b,就是说非单个b就替换成k,(c不替换)
例如1      bcbcbc bbbbbbbbbb cc bb c bbb c bbbb cbc bb
非单个b都替换成k得结果名称  数据1      bcbcbckcckckckcbck
2....

解决方案 »

  1.   

    while exists (select 1 from tablename where 数据 like '%bbb%')
    update tablename set
      数据= replace(数据,'bbb','bb')
    where 数据 like '%bbb%'update tablename set
      数据= replace(数据,'bb','k')
    where 数据 like '%bb%'
      

  2.   

    测试结果create table tablename(
    名称  int,
    数据 varchar(100)
    )
    goinsert tablename select
    1,      'bcbcbcbbbbbbbbbbccbbcbbbcbbbbcbcbb' 
    union all select
    2,      'bbbbbbccbbcbbbcbbbbcbcbbbbcbcbcbcb'
    gowhile exists (select 1 from tablename where 数据 like '%bbb%')
    update tablename set
      数据= replace(数据,'bbb','bb')
    where 数据 like '%bbb%'update tablename set
      数据= replace(数据,'bb','k')
    where 数据 like '%bb%'select * from tablename--结果
    名称          数据
    ----------- ----------------------------------------------------------------------------------------------------
    1           bcbcbckcckckckcbck
    2           kcckckckcbckcbcbcbcb(2 行受影响)
      

  3.   

    update tablename set
      数据= replace(数据,'bbb','bb')
    where 数据 like '%bbb%'update tablename set
      数据= replace(数据,'bb','k')
    where 数据 like '%bb%'
      

  4.   


    update tablename set 
      数据= replace(数据,'bbb','bb') 
    where 数据 like '%bbb%' 
    --把连接三个bbb,都变成bb,对应着奇数b
    update tablename set 
      数据= replace(数据,'bb','k') 
    where 数据 like '%bb%' 
    --最后两个bb,变成k,对应着偶数b