• sql 表值函数-将一个传入的字符串用2中分隔符拆分成临时表


    USE [tms]
    GO
    /****** Object: UserDefinedFunction [dbo].[fn_StrToTable_Double] Script Date: 2017/4/26 9:07:38 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author: HXQ
    -- Create date: 2016年8月9日18:04:11
    -- Description: 表值函数-将一个传入的字符串用2中分隔符拆分成临时表,例:SELECT * FROM dbo.fn_StrToTable_Double('111|222,333|444,555|666',',','|')
    -- =============================================
    ALTER FUNCTION [dbo].[fn_StrToTable_Double]
    (
    @String NVARCHAR(max), --要转换的字符串。
    @Separator1 VARCHAR(10) = ',', --分隔符。
    @Separator2 varchar(10)='|' --第二个分隔符
    )
    RETURNS @TableDouble TABLE([ID] NVARCHAR(500),[Text] NVARCHAR(500),Sort int)
    AS
    BEGIN

    SET @String = @String +@Separator2
    declare @int int=1
    WHILE CHARINDEX(@Separator1, @String) > 0
    BEGIN
    declare @str nvarchar(500)='',@str1 NVARCHAR(500)=''
    set @str=SUBSTRING(@String, 1, CHARINDEX(@Separator1, @String) - 1)
    SET @str1=SUBSTRING(@str, 1, CHARINDEX(@Separator2, @str) - 1)
    set @str=SUBSTRING(@str, CHARINDEX(@Separator2,@str)+1 , CHARINDEX(@Separator2,@str) - 1)
    INSERT INTO @TableDouble ([ID],[Text],Sort) VALUES(@str1,@str,@int)
    set @int=@int+1
    SELECT @String = SUBSTRING(@String, CHARINDEX(@Separator1, @String) + 1, LEN(@String) - CHARINDEX(@Separator1, @String))
    END
    return
    END

  • 相关阅读:
    树形dp入门
    D. Kilani and the Game(多源BFS)
    C. Ayoub and Lost Array
    poj3254(状压dp)
    CodeForces
    链式前项星(模板)
    “东信杯”广西大学第一届程序设计竞赛(同步赛)H
    最小生成树kruskal模板
    hdu-4763(kmp+拓展kmp)
    poj-3080(kmp+暴力枚举)
  • 原文地址:https://www.cnblogs.com/zhang-wenbin/p/6766924.html
Copyright © 2020-2023  润新知