日期:2014-05-18  浏览次数:20554 次

用游标,找到逗号,然后保留 逗号和逗号后第一位如何写
执行前是下面这样的
群链球菌'qun'lian'qiu'jun'90
执行后是
群链球菌'q'l'q'j'9 

我想应该使用游标,找到逗号,然后保留 逗号和逗号后第一位,但想不到怎么样写语句


下面是要做的一部分数据
癌症'ai'zheng'90
癌症康复会'ai'zheng'kang'fu'hui'90
癌症中心'ai'zheng'zhong'xin'90
艾本'ai'ben'90
艾迪注射液'ai'di'zhu'she'ye'90
艾恒'ai'heng'90
艾去适'ai'qu'shi'90
艾瑞宁'ai'rui'ning'90
艾司洛尔'ai'si'luo'er'90
艾素'ai'su'90
艾愈胶囊'ai'yu'jiao'nang'90
爱必妥'ai'bi'tuo'90
爱扶康贴膏'ai'fu'kang'tie'gao'90
爱克兰'ai'ke'lan'90
安吖啶'an'a'ding'90
安吖啶注射液'an'a'ding'zhu'she'ye'90
安达芬'an'da'fen'90

------解决方案--------------------
不需要用游标。用函数就可以了。
SQL code

create function ppp(@text varchar(1000))
returns varchar(100)
as
begin
    declare @return varchar(100)
    set @return=''
    while(charindex('''',@text)>0)
    begin
        set @return=@return+''''+substring(@text,charindex('''',@text)+1,1)
        set @text=substring(@text,charindex('''',@text)+1,len(@text))
    end
    return @return
end

调用函数:
select dbo.ppp('''qun''lian''qiu''jun''90') 因为'是sql的标记,所以要每个'号前面要加一个转义字符
如果你是对表里的字段进行处理。只需要:
select dbo.ppp(字段名) from 表名