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
  • 相关阅读:
    WPF 命令基础
    委托 C#
    Volley网络请求框架的基本用法
    MailOtto 实现完美预加载以及源码解读
    Android_时间服务
    Android_Chronometer计时器
    Android_Json实例
    完结篇
    就快完结篇
    MySQL 选出日期时间最大的一条记录
  • 原文地址:https://www.cnblogs.com/dannyli/p/2662825.html
Copyright © 2011-2022 走看看