现在表中有一个Rname字段,其中有的字符形式为:
安徽省新宇缆业集团有限公司(原安徽新宇电缆总厂)
尚朋堂(广州)电器有限公司
宁波斯佳电器有限公司 (慈溪市斯佳电器厂)
现要求:
1,将带有(原...)的字符全部删掉,
2,将括号中没有"原"字样的记录拆分成两条记录,
3,括号中只有(广州)这类地名的记录保持不变;
请问大家该如何解决?分不够了,明天再加!

解决方案 »

  1.   

    (原安徽新宇电缆总厂)长度20
    (广州)长度6看情况你要删除的长度在10以上,而(广州)之类的长度应该在10以下.update table tb
    set Rname = replace(rname , substring(rname , charindex('(原',rname) , charindex(')',rname) - charindex('(原',rname)) , '')
    where datalenth(substring(rname , charindex('(原',rname) , charindex(')',rname) - charindex('(原',rname))) > 10
      

  2.   

    谢谢楼上,执行的时候出现了:
    服务器: 消息 536,级别 16,状态 3,行 1
    向 substring 函数传递了无效的 length 参数。
    语句已终止。
      

  3.   

    update table tb
    set Rname = replace(rname , substring(rname , charindex('[(]原',rname) , charindex('[)]',rname) - charindex('[(]原',rname)) , '')
    where datalenth(substring(rname , charindex('[(]原',rname) , charindex('[)]',rname) - charindex('[(]原',rname))) > 10
    忘记在保留字加[]
    刚才在SQLSERVER版的.
      

  4.   

    to lovvver(www.notsoft.cn)! :
    你说话注意点!不知道什么情况就别乱张嘴!我都说得明明白白!分不够了,只有20分了,我也知道少,不是都说了明天再给加分吗!我是先放到SQL社区的,得不到解决我才转移到C#社区的!我最鄙视最讨厌你这种不帮忙净瞎叫唤的人!
    眼睛看的都是别人的短处!净挑别人的毛病!有一个星了不起啊!
      

  5.   

    to lovvver(www.notsoft.cn)! :分不够了,明天再加!这句话你看不见吗!
      

  6.   

    to lovvver(www.notsoft.cn)! :
    我拿到c#版来又怎么了?目的是为了让贴子提前一下,我再转回去!
    分少怎么了?帮助人就是为了图分吗?人家dawugui(潇洒老乌龟)怎么就没像你计较这么多?
    你的人品太差了!
    不帮忙还四处挑别人的毛病!