文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>拆分字符串的自定义SQL函数,返回包含拆分后各子符的表

拆分字符串的自定义SQL函数,返回包含拆分后各子符的表

时间:2010-11-01  来源:Ant

 /* 待拆分的字符串  */

 @origStr varchar(7000),

 /* 拆分标记,如','  */

 @markStr varchar(100)

)  

RETURNS @splittable table        /*返回一个表*/

(

 /* 编号ID */

 str_id   varchar(4000) NOT NULL,

 /* 拆分后的字符串  */

 string   varchar(2000) NOT NULL

)

 /************************************************************

 *功能: 拆分字符串       *

 *************************************************************/

AS  

BEGIN

 declare @strlen int,@postion int,@start int,@sublen int,@TEMPstr varchar(200),@TEMPid int

 SELECT @strlen=LEN(@origStr),@start=1,@sublen=0,@postion=1,@TEMPstr='',@TEMPid=0

 if(RIGHT(@origStr,1)<>@markStr )

 begin

  set @origStr = @origStr + @markStr

 end

 WHILE((@postion<=@strlen) and (@postion !=0))

 BEGIN

  IF(CHARINDEX(@markStr,@origStr,@postion)!=0)

  BEGIN 

   SET @sublen=CHARINDEX(@markStr,@origStr,@postion)-@postion;  

  END

  ELSE

  BEGIN

   SET @sublen=@strlen-@postion+1;

  END

  IF(@postion<=@strlen)

  BEGIN

   SET @TEMPid=@TEMPid+1;

   SET @TEMPstr=SUBSTRING(@origStr,@postion,@sublen);

   INSERT INTO @splittable(str_id,string) values(@TEMPid,@TEMPstr)

   IF(CHARINDEX(@markStr,@origStr,@postion)!=0)

   BEGIN

    SET @postion=CHARINDEX(@markStr,@origStr,@postion)+1

   END

   ELSE

   BEGIN

    SET @postion=@postion+1

   END

  END 

 END

END

 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载