zoukankan      html  css  js  c++  java
  • sqlserver分隔字符串

    USE [BooksBrothersWebOrder]
    GO
    /****** Object:  UserDefinedFunction [dbo].[FX_Split]    Script Date: 08/13/2012 09:28:51 ******/
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER FUNCTION [dbo].[FX_Split]
    (
     @SplitString varchar(8000),-- 需要分隔的字符串
     @Separator varchar(2)  --分隔符哈
    )
    RETURNS @SplitStringsTable TABLE
    (
     [id] int identity(1,1),
     [value] varchar(8000)-- nvarchar(4000)
    )
    AS
    BEGIN
        DECLARE @CurrentIndex int; --当前索引
        DECLARE @NextIndex int; --下一位索引
        DECLARE @ReturnText varchar(200);-- 返回文本值
        SELECT @CurrentIndex=1; --默念当前索引表示和第一位开始
       
        WHILE(@CurrentIndex<=len(@SplitString))--要分隔字符串的长度  当满足条件就会跳出
        BEGIN
            SELECT @NextIndex=charindex(@Separator,@SplitString,@CurrentIndex);--得到分隔符的位置
            IF(@NextIndex=0 OR @NextIndex IS NULL) --如果是0或者空得到新索引的长度
                SELECT @NextIndex=len(@SplitString)+1;
               
            SELECT @ReturnText=substring(@SplitString,@CurrentIndex,@NextIndex-@CurrentIndex); --截取返回
            INSERT INTO @SplitStringsTable([value])
            VALUES(@ReturnText);
            SELECT @CurrentIndex=@NextIndex+1; --索引依次变化
        END
        RETURN;
    END

     SELECT @Flag= charindex(@ReturnText,@ReturnTextTotal)--取得函数返回值(这句话就可以,上面的那个函数还有问题)

  • 相关阅读:
    简单的远程控制软件
    VS集成环境中的JavaScript脚本语法检查
    vs2022安装
    有关httpContext.Current.Session[值] 取值的问题
    【python3.7】文件操作
    148. 排序链表
    11. 盛最多水的容器
    23. 合并K个升序链表
    147. 对链表进行插入排序
    146. LRU 缓存机制
  • 原文地址:https://www.cnblogs.com/yzenet/p/2636331.html
Copyright © 2011-2022 走看看