在SQLSERVER 2000数据里的某一个表,例如:用户信息表 userinfo 里有一字段是 address ,里面的数据如下:“四川省遂宁市市中区石洞镇18村”,:“四川省遂宁市市中区观音乡15村”,…………
我现在需要把 里面的“四川省遂宁市市中区……” 改成“四川省安居区………”
也就是说,把ADDRESS字段中的前9个字全部更改为“四川剩安居区”6个字,
兄弟门帮忙呀,小弟我正在四川出差,情况紧急,SOS!!!!
 是不是可以在ADDRESS字段中从第18个字符开始拷贝字符串,然后把得到的字符串在前面加上“四川省安居区”???

解决方案 »

  1.   

    update a set a.address='四川省安居区'+substring(a.address,19,len(a.address)-18)
    from userinfo a
    where substring(a.address,1,18)='四川省遂宁市市中区'
      

  2.   

    你说的方法不就可以吗?
    sql语句如下:
    update userinfo set address='四川省安居区'+substring(address,19,len(address)-18)
      

  3.   

    是不是固定9个?是的话update userinfo set address='四川省安居区'+left(address,10,len(address)-10)好像现在一个中文是当作一个字符的,如果不对,你换成两个的看看
      

  4.   

    update userinfo set address= (select substr(address,1,3)||'安居区'||substring(a.address,10,len(a.address)-9) from userinfo where substr(gsmc,4,6) = '遂宁市市中区')
    应该没问题,我试过的,你试试吧
      

  5.   

    在SQLSERVER 2000数据里的某一个表,例如:用户信息表 userinfo 里有一字段是 address ,里面的数据如下:“四川省遂宁市市中区石洞镇18村”,:“四川省遂宁市市中区观音乡15村”,…………update userinfo set address='四川省安居区'+substring(address,10,len(address)-10) where substring(address,1,10)='四川省遂宁市市中区'
      

  6.   

    update yourtablename set address='四川省安居区'+right(address,len(address)-18)
      

  7.   

    如果不都是“四川省遂宁市市中区石洞镇18村”开头就加上这句:
    where left(address,18)='四川省遂宁市市中区石洞镇18村'
      

  8.   

    UPDATE TABLENAME SET Address = REPLACE(Address, SUBSTRING (Address, 1, 9), '四川省安居区');
      

  9.   

    update userinfo set address='四川省安居区'+left(address,10,len(address)-10)好像现在一个中文是当作一个字符的,如果不对,你换成两个的看看
      

  10.   

    update userinfo set address=replace(address,'四川省遂宁市市中区','四川省安居区')
      

  11.   

    update a set a.address='四川省安居区'+substring(a.address,19,len(a.address)-18)
    from userinfo a
    where substring(a.address,1,18)='四川省遂宁市市中区'
      

  12.   

    CloneCenter(复制中心) 
    果然是高手。
      

  13.   

    update userinfo set address=replace(address,'四川省遂宁市市中区','四川省安居区')别心急搞错了,这个可是全部update,没带where条件的。
      

  14.   

    SQL语句如下:
    update userinfo set address='四川省安居区'+substring(address,10,len(address)-19) where substring(address,1,10)='四川省遂宁市市中区'
      

  15.   

    update userinfo set address='四川省安居区'+substring(address,10,len(address)-19) where substring(address,1,10)='四川省遂宁市市中区'
      

  16.   

    update userinfo set address='四川省安居区'+substring(address,21,len(address)-20) where left(address,20)='四川省遂宁市市中区'
      

  17.   

    不好意思,我刚发现上面我的哪一个东东写错了,应该是:
    update userinfo set address='四川省安居区'+substring(address,19,len(address)-19) where substring(address,1,10)='四川省遂宁市市中区'
    楼上兄弟,不好意思,我开始写错了,你们现在可以翻版了!
      

  18.   

    哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
    1、有replace居然不用
    2、where substring(address,1,10)='四川省遂宁市市中区' 的查询时间花费和没有设置查询条件一样,这种写法SQLServer要对所有的address进行计算,用like则不用update userinfo set address=replace(address,'四川省遂宁市市中区','四川省安居区')
    where address like '%四川省遂宁市市中区%'//设置查询条件只是为了减少搜索范围