Sql Server 拆分字符串函数_SQL SERVER数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

Sql Server 拆分字符串函数

作者:黑客防线网安网站维护基地 来源:黑客防线网安网站维护基地 浏览次数:0

本篇关键词:sql函数

CREATE   FUNCTION uf_StrSplit '1.1.2.50','.'
(@origStr varchar(7000),   --待拆分的字符串
@markStr varchar(100))    --拆分标记如','
RETURNS @splittable table
(
str_id    varchar(4000) NOT NULL, --编号ID
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
RETURN
END

 


例如:select * from uf_StrSplit('11,2,50',',')

输出结果:str_id      string

                     1             1
                     2             1
                     3             2
                     4            50

 

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-345-1.html
网站维护教程更新时间:2008-02-25 07:03:26  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer