zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Python电影投票系统
    Python打印一个等边三角形
    打印正直角三角形
    MySQL指令
    MySQL安装 8.0.15版本
    局部变量 全局变量
    目录
    格式化输出
    转义字符
    ffmpeg 从内存中读取数据(或将数据输出到内存)
  • 原文地址:https://www.cnblogs.com/zhang-wenbin/p/6766924.html
Copyright © 2011-2022 走看看