zoukankan      html  css  js  c++  java
  • 自定义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
  • 相关阅读:
    structInMemory
    合并字符串
    eggs
    1005. Spell It Right (20) -PAT
    60 人工智能
    50 计算机网络
    20数据结构
    40操作系统
    10 C/C++/python
    30汇编
  • 原文地址:https://www.cnblogs.com/dannyli/p/2662825.html
Copyright © 2011-2022 走看看