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
  • 相关阅读:
    [LeetCode] 88. Merge Sorted Array
    [LeetCode] 73. Set Matrix Zeroes
    [LeetCode] 70. Climbing Stairs(斐波那契数列)
    [LeetCode] 65. Valid Number(多个标志位)
    [LeetCode] 57.Insert Interval
    [CCF] 201612-2 工资计算
    手脱Aspack变形壳1
    手脱FSG v1.33
    手脱PEncrypt 4.0
    手脱JDPack
  • 原文地址:https://www.cnblogs.com/dannyli/p/2662825.html
Copyright © 2011-2022 走看看