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)--取得函数返回值(这句话就可以,上面的那个函数还有问题)

  • 相关阅读:
    ZABBIX实现原理及架构详解
    for(;;)和while(true)的区别
    JVM
    javap的基本用法
    Java VisualVM添加Visual GC插件
    Java虚拟机监控命令
    数据类型 原始类型的方法
    数据类型 数字类型
    Object(对象):基础知识 原型对象prototype
    Object(对象):基础知识 对象方法,"this"
  • 原文地址:https://www.cnblogs.com/yzenet/p/2636331.html
Copyright © 2011-2022 走看看