用游标,找到逗号,然后保留 逗号和逗号后第一位如何写
执行前是下面这样的
群链球菌'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 表名