zoukankan      html  css  js  c++  java
  • 在SQL SERVER中实现Split功能的函数,并在存储过程中使用

    CREATE FUNCTION dbo.SplitString
    (
              
    @Expression NVARCHAR(4000), --要拆分的字符串
              @Delimiter NVARCHAR(100), --拆分符号
              @n INT --要得到已拆分的返回字符串位置
    )
    RETURNS NVARCHAR(4000)
    AS
    BEGIN
    DECLARE @p INT
    SET @p = CharIndex(@Delimiter,@Expression)
    IF @p > 0
              
    BEGIN
              
    SET @p = @p + Len(@Delimiter- 1
              
    END
    DECLARE @i INT
    SET @i = 1
    WHILE @i < @n
              
    BEGIN
              
    SET @i = @i + 1
              
    SET @Expression = SubString(@Expression@p + 1,Len(@Expression- @p )
              
    SET @p = CharIndex(@Delimiter,@Expression)
              
    IF @p > 0
                        
    BEGIN 
                        
    SET @p = @p + Len(@Delimiter- 1
                        
    END
              
    ELSE
                        
    BEGIN
                        
    BREAK
                        
    END
    END

    DECLARE @s NVARCHAR(1000)
    IF @p = 0 AND @i = @n
              
    BEGIN
              
    SET @s = @Expression
              
    END
    ELSE
              
    IF @i = @n
              
    BEGIN
              
    SET @s = SubString(@Expression1,@p - Len(@Delimiter))
              
    END
    RETURN @s
    END

    复制代码

    使用方法:

    复制代码

    代码

    DECLARE @string NVARCHAR(50)
    SET @string  = '在|SQL SERVER|中实现Split|功能的|函数|'
    DECLARE @split NVARCHAR(4)
    SET @split = '|'
    SELECT dbo.SplitString (@string@split1)   --
    SELECT dbo.SplitString (@string@split2)   --SQL SERVER
    SELECT dbo.SplitString (@string@split3)   --中实现Split
    SELECT dbo.SplitString (@string@split4)   --功能的
    SELECT dbo.SplitString (@string@split5)   --函数
    SELECT dbo.SplitString (@string@split6)   --null
  • 相关阅读:
    ES 内存深度解析
    Spring Cache介绍和使用
    mysql 索引及索引创建原则
    mysql中四种存储引擎的区别和选择
    Java中数组、List、Set互相转换
    COGS 1151 活动安排
    洛谷P1650赛马与codevs 2181 田忌赛马
    5月3日济南清北学堂随堂测试题目
    codevs 1206 保留两位小数
    codevs 1203 判断浮点数是否相等
  • 原文地址:https://www.cnblogs.com/soundcode/p/2540290.html
Copyright © 2011-2022 走看看