本帖最后由 ittxl1 于 2012-01-03 12:15:28 编辑

解决方案 »

  1.   

    再把替换后的字符排序 如字符为‘zcxbk’排序后是‘bckxz’这个是个什么规则?
      

  2.   

    求教一个SQL语句问题 谢谢!
    table表里有[name]字段,现在要增加一个字段[name2];
    [name]字段不变,新字段[name2]的要求如下
    -----------------
    1、先把[name]字段里包含 'abc'的连续字符替换成 'xy';
    2、再把替换后的字符排序 如字符为‘zcxbk’排序后是‘bckxz’;(由a到z)
    -----------------
    就上面两条   示例:
    原字段  通过SQL语句先替换再排序  新字段
    [name]           --->>          [name2]
    uwabczxbc        --->>          bcuwxxy
    abcwfdz          --->>          dfwxyz
    谢谢了!
      

  3.   

    替换的话,replace就可以了排序的话,参考:
    http://blog.csdn.net/jinjazz/article/details/3844595
      

  4.   


    DECLARE @T TABLE(name VARCHAR(10))
    INSERT @T SELECT 'uwabczxbc'
    INSERT @T SELECT 'abcwfdz';WITH Numbers AS
    (
    SELECT TOP(20)
    ROW_NUMBER() OVER(ORDER BY [object_id]) AS ID
    FROM sys.objects
    ),
    Liang AS
    (SELECT replace(A.name,'abc','xy') as Name,B.ID,SUBSTRING(replace(A.name,'abc','xy'),B.ID,1) AS v
     FROM @t AS A
     JOIN Numbers AS B
     ON SUBSTRING(replace(A.name,'abc','xy'),B.ID,1)<>''
    )SELECT name,name2=REPLACE((
    SELECT v AS  [data()] FROM Liang
    WHERE name=replace(A.name,'abc','xy') ORDER BY v FOR XML PATH('') ),' ','')
    FROM @t AS A
    /*
    name       name2
    ---------- -----------
    uwabczxbc  bcuwxxyz
    abcwfdz    dfwxyz
    */你给出的结果不对,第一个记录中的z是存在的...
      

  5.   

    请问下,在SQL里能不能实现多个字符串的替换呢。比如把 
    'abc'
    'abn'
    'abx'
    'abe'
    'cdu'
    'ufc'
    'bqa'
    'qda'
    'adw'
    'dfa'
    都换成'xy' 
    只能通过多个replace吗?