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

字符串截取问题,3楼有测试数据
一个表示模块的字符串:
客户端门户:客户端门户,客户端登陆,客户端升级,视频,音乐,游戏,软件,主题,品牌店,热卖场,营业厅,书城,创业计划,我的MM,广告,其他;WAP门户:WAP门户,登陆,订购,商品展示,其他;WWW门户:WWW门户,登陆,订购,商品展示,其他;开发者社区:开发者社区,MM学院,登陆,页面展示,其他;短信门户:短信门户,短信门户
需求:
去掉分好前边个模块分类名字,然后将所有字符逗号分隔显示;
处理后结果如下:
客户端门户,客户端登陆,客户端升级,视频,音乐,游戏,软件,主题,品牌店,热卖场,营业厅,书城,创业计划,我的MM,广告,其他,WAP门户,登陆,订购,商品展示,其他,WWW门户,登陆,订购,商品展示,其他,开发者社区,MM学院,登陆,页面展示,其他,短信门户,短信门户

求sql处理办法,谢谢

------解决方案--------------------
SQL code
CREATE table t (id int,SUBMITTIME datetime ,influence varchar(500))
insert t values(172,'2012-03-14 22:01:42.000','客户端门户:客户端门户,客户端登陆,客户端升级,视频,音乐,游戏,软件,主题,品牌店,热卖场,营业厅,书城,创业计划,我的MM,广告,其他;WAP门户:WAP门户,登陆,订购,商品展示,其他;WWW门户:WWW门户,登陆,订购,商品展示,其他;开发者社区:开发者社区,MM学院,登陆,页面展示,其他;短信门户:短信门户,短信门户')
insert t values(168,'2012-03-14 11:46:18.000','客户端门户:客户端登陆;WAP门户:WAP门户,登陆,订购,商品展示,其他')
insert t values(153,'2012-03-13 19:24:57.000','客户端门户:营业厅;WAP门户:登陆')
insert t values(81,'2010-08-04 00:00:00.000','WAP门户:WAP门户,登陆,订购,商品展示,其他;WWW门户:WWW门户,登陆,订购,商品展示,其他;开发者社区:开发者社区,MM学院,登陆,页面展示,其他;短信门户:短信门户,短信门户')
insert t values(71,'2018-01-05 00:00:00.000','WAP门户:订购')
go

create function dbo.f_str(@influence varchar(500)) returns varchar(500)
as
begin
  declare @str varchar(500)
  declare @i as int
  declare @j as int
  set @str = ''
  set @i = 1
  set @j = len(@influence) - len(replace(@influence , ':' , ''))
  set @influence = @influence + ';'
  while @i <= @j
  begin
    set @str = @str + substring(@influence , charindex(':',@influence) + 1 , charindex(';',@influence) -  charindex(':',@influence) - 1) + ','
    set @influence = substring(@influence , charindex(';',@influence) + 1 , len(@influence))
    set @i = @i + 1
  end
  set @str = substring(@str,1,len(@str)-1)
  return @str
end
go

--调用函数
select id,SUBMITTIME,influence = dbo.f_str(influence) from t

drop function dbo.f_str
drop table t

/*
id          SUBMITTIME                                             influence                                                                                                                                                                                                                                                        
----------- ------------------------------------------------------ ---------------------------------------------------------------------------------------------------------------- 
172         2012-03-14 22:01:42.000                                客户端门户,客户端登陆,客户端升级,视频,音乐,游戏,软件,主题,品牌店,热卖场,营业厅,书城,创业计划,我的MM,广告,其他,WAP门户,登陆,订购,商品展示,其他,WWW门户,登陆,订购,商品展示,其他,开发者社区,MM学院,登陆,页面展示,其他,短信门户,短信门户
168         2012-03-14 11:46:18.000                                客户端登陆,WAP门户,登陆,订购,商品展示,其他
153         2012-03-13 19:24:57.000                                营业厅,登陆
81          2010-08-04 00:00:00.000                                WAP门户,登陆,订购,商品展示,其他,WWW门户,登陆,订购,商品展示,其他,开发者社区,MM学院,登陆,页面展示,其他,短信门户,短信门户
71          2018-01-05 00:00:00.000                                订购

(所影响的行数为 5 行)

*/