便如有个表create table #s 
(name char(30))insert into 
select '(限50)aaas'
insert into 
select '(限5)aaa1'
insert into 
select '(限100)aaa2'怎样用一条语句把(限**)这部分数据替换掉
最后查询结果是aaas
aaa1
aaa2我只是举个例子。需要改的条数很多。可以设置变量,循环。
希望大侠们可以帮帮忙。

解决方案 »

  1.   

    根据第一个(
    和)确定位置
    然后stuff成空
      

  2.   

    select RIGHT(rtrim(name),len(name)-charindex(')',name))name from #s
    /*
    name
    ------------------------------
    aaas
    aaa1
    aaa2(3 行受影响)*/
      

  3.   

    create table #s  
    (name char(30))insert into #s
    select '(限50)aaas'
    insert into  #s
    select '(限5)aaa1'
    insert into  #s
    select '(限100)aaa2'
    go
    select RIGHT(rtrim(name),len(name)-charindex(')',name))name from #s
    /*
    name
    ------------------------------
    aaas
    aaa1
    aaa2(3 行受影响)*/
      

  4.   

    create table #s  
    (name char(30))insert into  #s 
    select '(限50)aaas'
    union all
    select '(限5)aaa1'
    union all
    select '(限100)aaa2'select STUFF(name,1,CHARINDEX(')',name),'') from #s 
    drop table #s
      

  5.   

    create table #s  
    (name char(30))insert into #s select '(限50)aaas'
    insert into #s select '(限5)aaa1'
    insert into #s select '(限100)aaa2' select  STUFF(name,1, len(left( name,CHARINDEX(')',name) )) ,'')  as name  from #s
    name
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    aaas                   
    aaa1                    
    aaa2                  (3 行受影响)
      

  6.   

    select  STUFF(name,1, CHARINDEX(')',name),'')     as name  from #s
      

  7.   

    select RIGHT(rtrim(name),len(name)-charindex(')',name))name from #s