首页 > 数据库技术 > 详细

SQL 分割函数

时间:2015-03-31 17:55:02      阅读:199      评论:0      收藏:0      [点我收藏+]

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER FUNCTION [dbo].[Split]
(
@SplitString nvarchar(4000), -- 如果要传入NText类型,下面需要相应的修改,注释行为NText下同
@Separator varchar(2) = ‘,‘-- NVarChar(2) = N‘,‘
)
RETURNS @SplitStringsTable TABLE
(
[id] int identity(1,1),
[value] varchar(8000) -- NVarChar(4000)
)
AS
BEGIN
DECLARE @CurrentIndex int;
DECLARE @NextIndex int;
DECLARE @ReturnText nvarchar(4000);-- NVarChar(4000)
SELECT @CurrentIndex=1;
WHILE(@CurrentIndex<=datalength(@SplitString)) -- DATALENGTH(@SplitString)/2
BEGIN
SELECT @NextIndex=charindex(@Separator,@SplitString,@CurrentIndex);
IF(@NextIndex=0 OR @NextIndex IS NULL)
SELECT @NextIndex=datalength(@SplitString)+1;--DATALENGTH(@SplitString)/2

SELECT @ReturnText=substring(@SplitString,@CurrentIndex,@NextIndex-@CurrentIndex);

INSERT INTO @SplitStringsTable([value])
VALUES(@ReturnText);

SELECT @CurrentIndex=@NextIndex+1;
END
RETURN;
END

 

SQL 分割函数

原文:http://www.cnblogs.com/lileiprc/p/4381340.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!