select replace('''a,b,c''',',',''',''')/*
-----------------
'a','b','c'(所影响的行数为 1 行)
*/

解决方案 »

  1.   

    DECLARE @s nvarchar(4000)
    SET @s='a,b,c'-- 处理
    SELECT @s=N'SELECT '''+REPLACE(@s,N',',N''' UNION ALL SELECT ''')+N''''
    EXEC(@s)
      

  2.   

    先謝謝以上二位,剛沒有把問題完全講清楚
    描述如下:
      在table表中有一個字段name,值為'a,b,c'吧,我現在想通過
    select name from table來取出這條記錄,但要求結果為'a','b','c'不知如何做到按照樓上vivianfdlpw()的方法:
    select replace('''a,b,c''',',',''',''') from table是可以得到結果為'a','b','c'但是換成select replace(name,',',''',''') from table得到的結果卻為a','b','c這問題沒能力解瘊了呀!各位大老幫個忙呀
      

  3.   

    转一个函数给你使用。
    因查询统计需要,今天早上在SQLSERVER里写了一个类似于Split的函数,如下create function f_split(@SourceSql varchar(8000),@StrSeprate varchar(10))
    returns @temp table(a varchar(100))
    --实现split功能 的函数
    --date :2005-4-20
    --Author :Domino
    as 
    begin
    declare @i int
    set @SourceSql=rtrim(ltrim(@SourceSql))
    set @i=charindex(@StrSeprate,@SourceSql)
    while @i>=1
    begin
    insert @temp values(left(@SourceSql,@i-1))
    set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
    set @i=charindex(@StrSeprate,@SourceSql)
    end
    if @SourceSql<>'\'
    insert @temp values(@SourceSql)
    return 
    end
    用法:select * from dbo.f_split('A:B:C:D:E',':')
    作者Blog:http://blog.csdn.net/great_domino/