zoukankan      html  css  js  c++  java
  • SQLSERVER 分割字符串函数

    原文地址:http://www.jb51.net/article/28921.htm

    首先创建一个表值函数:

    SET ANSI_NULLS ON 
    GO 
    SET QUOTED_IDENTIFIER ON 
    GO 
    /* 
    by kudychen 2011-9-28 
    */ 
    CREATE function [dbo].[SplitString] 

    @Input nvarchar(max), --input string to be separated 
    @Separator nvarchar(max)=','--a string that delimit the substrings in the input string 
    @RemoveEmptyEntries bit=1 --the return value does not include array elements that contain an empty string 

    returns @TABLE table 

    [Id] int identity(1,1), 
    [Value] nvarchar(max

    as 
    begin 
    declare @Index int@Entry nvarchar(max
    set @Index = charindex(@Separator,@Input
    while (@Index>0
    begin 
    set @Entry=ltrim(rtrim(substring(@Input1@Index-1))) 
    if (@RemoveEmptyEntries=0or (@RemoveEmptyEntries=1 and @Entry<>''
    begin 
    insert into @TABLE([Value]Values(@Entry
    end 
    set @Input = substring(@Input@Index+datalength(@Separator)/2len(@Input)) 
    set @Index = charindex(@Separator@Input
    end 
    set @Entry=ltrim(rtrim(@Input)) 
    if (@RemoveEmptyEntries=0or (@RemoveEmptyEntries=1 and @Entry<>''
    begin 
    insert into @TABLE([Value]Values(@Entry
    end 
    return 
    end

    调用示例: 

    declare @str1 varchar(max), @str2 varchar(max), @str3 varchar(max
    set @str1 = '1,2,3' 
    set @str2 = '1###2###3' 
    set @str3 = '1###2###3###' 
    select [Value] from [dbo].[SplitString](@str1','1
    select [Value] from [dbo].[SplitString](@str2'###'1
    select [Value] from [dbo].[SplitString](@str3'###'0
  • 相关阅读:
    SpringBoot启动流程
    谈谈Java的线程池设计
    ReentrantReadWriteLock及共享锁的实现
    Condition的await()和signal()流程
    AbstractQueuedSynchronizer与ReentrantLock
    线程状态及各状态下与锁和CPU的关系
    Java运算符和表达式
    Java常量与变量
    jtl文件解析(jmeter+jenkins+python实现接口自动化)
    mac 增加/usr/bin目录的操作无权限
  • 原文地址:https://www.cnblogs.com/merray/p/2591149.html
Copyright © 2011-2022 走看看