自定义SQL中的SplitString函数

SQL Server中貌似没有Split函数,不能实现将某个字符串按照某个特定的字符分隔,在这里,提供一个自定义SQL函数,实现Split功能,当然,返回数组是不可能滴,你懂的...

/******************************************************************************
**  功能:将指定的字符串按照指定的分隔符分割,返回指定索引的子字符串
**  作者:Danny,Li (xing.dong.li@163.com)
**  日期:2011-08-19
*******************************************************************************
**  返回值列表
****************************
**  返回值        涵义
**  -------        ------------------------------------------------------
**  @Result        指定索引的子字符串(索引从0开始)
**
*******************************************************************************/
CREATE FUNCTION dbo.fun_SplitString
(
    @Expression VARCHAR(8000),    -- 欲处理的字符串
    @SplitChar CHAR(1),            -- 分隔符
    @Index INT                    -- 取值索引
)
Returns varchar(255)
AS
BEGIN
DECLARE @Result varchar(255),@TempIndex INT,@Temp INT,@Idx INT
SET @TempIndex = 0
SET @Idx = 0
WHILE @TempIndex>=0
BEGIN
    SET @Temp = CHARINDEX(@SplitChar,@Expression,@TempIndex)
    IF @TempIndex=0
        SET @Result = SUBSTRING(@Expression,0,@Temp)
    ELSE IF @TempIndex<@Temp
        SET @Result = SUBSTRING(@Expression,@TempIndex,@Temp-@TempIndex)
    ELSE
        SET @Result = SUBSTRING(@Expression,@TempIndex,LEN(@Expression)-@TempIndex+1)
    IF @Temp < @TempIndex
        SET @TempIndex = -1
    ELSE
        SET @TempIndex = @Temp+1
    IF @Idx=@Index
        SET @TempIndex = -1
    ELSE
    BEGIN
        SET @Idx = @Idx+1
        SET @Result = ''
    END        
END
    RETURN @Result
END

 

转载于:https://www.cnblogs.com/dannyli/archive/2012/08/29/2662825.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值