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

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

复制代码

使用方法:

复制代码

代码

DECLARE   @string   NVARCHAR ( 50 )
SET   @string    =   ' 在|SQL SERVER|中实现Split|功能的|函数| '
DECLARE   @split   NVARCHAR ( 4 )
SET   @split   =   ' | '
SELECT  dbo.SplitString ( @string @split 1 )    --
SELECT  dbo.SplitString ( @string @split 2 )    -- SQL SERVER
SELECT  dbo.SplitString ( @string @split 3 )    -- 中实现Split
SELECT  dbo.SplitString ( @string @split 4 )    -- 功能的
SELECT  dbo.SplitString ( @string @split 5 )    -- 函数
SELECT  dbo.SplitString ( @string @split 6 )    -- null
分类:  SQL
本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/archive/2012/06/07/2540290.html ,如需转载请自行联系原作者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值