且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在SQL SERVER中实现Split功能的函数,并在存储过程中使用

更新时间:2022-09-23 08:20:25

CREATE FUNCTION dbo.SplitString
(
          
@Expression NVARCHAR(4000), --要拆分的字符串
          @Delimiter NVARCHAR(100), --拆分符号
          @n INT --要得到已拆分的返回字符串位置
)
RETURNS NVARCHAR(4000)
AS
BEGIN
DECLARE @p INT
SET @p = CharIndex(@Delimiter,@Expression)
IF @p > 0
          
BEGIN
          
SET @p = @p + Len(@Delimiter- 1
          
END
DECLARE @i INT
SET @i = 1
WHILE @i < @n
          
BEGIN
          
SET @i = @i + 1
          
SET @Expression = SubString(@Expression@p + 1,Len(@Expression- @p )
          
SET @p = CharIndex(@Delimiter,@Expression)
          
IF @p > 0
                    
BEGIN 
                    
SET @p = @p + Len(@Delimiter- 1
                    
END
          
ELSE
                    
BEGIN
                    
BREAK
                    
END
END

DECLARE @s NVARCHAR(1000)
IF @p = 0 AND @i = @n
          
BEGIN
          
SET @s = @Expression
          
END
ELSE
          
IF @i = @n
          
BEGIN
          
SET @s = SubString(@Expression1,@p - Len(@Delimiter))
          
END
RETURN @s
END

在SQL SERVER中实现Split功能的函数,并在存储过程中使用

使用方法:

在SQL SERVER中实现Split功能的函数,并在存储过程中使用

在SQL SERVER中实现Split功能的函数,并在存储过程中使用代码

DECLARE @string NVARCHAR(50)
SET @string  = '在|SQL SERVER|中实现Split|功能的|函数|'
DECLARE @split NVARCHAR(4)
SET @split = '|'
SELECT dbo.SplitString (@string@split1)   --
SELECT dbo.SplitString (@string@split2)   --SQL SERVER
SELECT dbo.SplitString (@string@split3)   --中实现Split
SELECT dbo.SplitString (@string@split4)   --功能的
SELECT dbo.SplitString (@string@split5)   --函数
SELECT dbo.SplitString (@string@split6)   --null
分类: SQL
本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/archive/2012/06/07/2540290.html,如需转载请自行联系原作者