zoukankan      html  css  js  c++  java
  • slqserver 拆分函数

    Create FUNCTION [dbo].[dnt_split]
    (
     @splitstring varchar(max),
     @separator CHAR(1) = ','
    )
    RETURNS @splitstringstable TABLE
    (
    [Id] int identity(1,1), 
     [Value] VARCHAR(max)
    )
    AS
    BEGIN
        DECLARE @currentindex INT
        DECLARE @nextindex INT
        DECLARE @returntext VARCHAR(max)
    
        SELECT @currentindex=1
    
        WHILE(@currentindex<=datalength(@splitstring))
        BEGIN
            SELECT @nextindex=charindex(@separator,@splitstring,@currentindex)--查询@currentindex 下表之后有 包含 @separator 有 返回第一个查找到的小标 否 返回0
            IF(@nextindex=0 OR @nextindex IS NULL)
                SELECT @nextindex=datalength(@splitstring)+1
            
            SELECT @returntext=substring(@splitstring,@currentindex,@nextindex-@currentindex)
    
            INSERT INTO @splitstringstable([Value])
            VALUES(@returntext)
            
            SELECT @currentindex=@nextindex+1
        END
        RETURN
    END
    
    
    GO
    --charindex(expressionToFind , expressionToSearch,start_location)--*注 想大小写 有区分 加这个 COLLATE Latin1_General_CS_AS
    
    --expressionToFind :目标字符串,就是想要找到的字符串,最大长度为8000 。
    
    --expressionToSearch :用于被查找的字符串。
    
    --start_location:开始查找的位置,为空时默认从第一位开始查找。
    。net工程师
  • 相关阅读:
    求全排列,调用C++函数
    ZOJ 3508 (the war)
    HDU 1285
    SDUT--枚举(删数问题)
    SDUT--进制转换
    位运算
    [NOI2015]软件包管理器
    列队[noip2017]
    [APIO2007]动物园
    [NOI2001]炮兵阵地
  • 原文地址:https://www.cnblogs.com/yuners/p/14166827.html
Copyright © 2011-2022 走看看