• Sql Server中常用的6个自定义函数分享


    转自:http://www.jb51.net/article/56691.htm

     1 IF OBJECT_ID('DBO.DISTINCT_STR') IS NOT NULL
     2 DROP FUNCTION DBO.DISTINCT_STR
     3 GO
     4 --此函数操作形如["a", "b", 1,2,3,1,"a"]的数组,去重后,["b",1,2,3]
     5 --@S(原有参数), @SPLIT(分隔符), @NEW_STR(新添加字符串)
     6 CREATE FUNCTION DISTINCT_STR(@S NVARCHAR(300),@SPLIT VARCHAR(50),@NEW_STR VARCHAR(300))
     7 RETURNS VARCHAR(300)
     8 AS
     9 BEGIN
    10 DECLARE @NEW VARCHAR(200),@INDEX INT,@TEMP VARCHAR(200)
    11 
    12 IF CHARINDEX(']',@S)>0 and CHARINDEX(']', @S) > 0
    13 SET @S=SUBSTRING(@S,charindex('[',@S)+1,LEN(@S)-2) + @SPLIT + @NEW_STR
    14 ELSE
    15 SET @S=@NEW_STR
    16 
    17 IF LEFT(@S,1)<>@SPLIT
    18 SET @S = @SPLIT+@S
    19 IF RIGHT(@S,1)<>@SPLIT
    20 SET @S = @S+@SPLIT
    21 WHILE CHARINDEX(@SPLIT,@S)>0 AND LEN(@S)<>1
    22 BEGIN
    23 SET @INDEX = CHARINDEX(@SPLIT,@S)
    24 SET @TEMP = LEFT(@S,CHARINDEX(@SPLIT,@S,@INDEX+LEN(@SPLIT)))
    25 IF @NEW IS NULL
    26 SET @NEW = ISNULL(@NEW,'')+@TEMP
    27 ELSE
    28 SET @NEW = ISNULL(@NEW,'')+REPLACE(@TEMP,@SPLIT,'')+@SPLIT
    29 WHILE CHARINDEX(@TEMP,@S)>0
    30 BEGIN
    31 SET @S=STUFF(@S,CHARINDEX(@TEMP,@S)+LEN(@SPLIT),CHARINDEX(@SPLIT,@S,CHARINDEX(@TEMP,@S)+LEN(@SPLIT))-CHARINDEX(@TEMP,@S),'')
    32 END
    33 END
    34 RETURN '['+RIGHT(LEFT(@NEW,LEN(@NEW)-1),LEN(LEFT(@NEW,LEN(@NEW)-1))-1)+']'
    35 END
    36 GO
  • 相关阅读:
    WebApi实现自定义错误日志
    WebApi实现IHttpControllerSelector问题
    动态属性ExpandoObject
    SQL远程连接
    HTML空格占位
    SQL生僻字模糊查询
    python中的字符串
    idea闪退
    lineNumber: 1; columnNumber: 1; 前言中不允许有内容。
    linux下后台启动weblogic
  • 原文地址:https://www.cnblogs.com/lpxblog/p/8385730.html
Copyright © 2020-2023  润新知