zoukankan      html  css  js  c++  java
  • sql server 函数

    1.Fun_Split 分割字符串,形成返回表

    CREATE FUNCTION [dbo].[Fun_Split]
    (    
        @Items VARCHAR(MAX),
        @SplitStr VARCHAR(MAX)
    )
    RETURNS @SplitTable TABLE(Item VARCHAR(MAX)) 
    AS
    BEGIN
        DECLARE @Split_Index INT=0;
        DECLARE @Split_len INT=0;
        SET @Items = RTRIM(LTRIM(@Items));
        SET @Split_Index = CHARINDEX(@SplitStr,@Items);
        SET @Split_len=LEN(@SplitStr);
        WHILE(@Split_Index>=1)
        BEGIN    
            INSERT INTO @SplitTable VALUES(LEFT(@Items,@Split_Index-1));
            SET @Items = SUBSTRING(@Items,@Split_Index + @Split_len,LEN(@Items)-@Split_Index);
            SET @Split_Index = CHARINDEX(@SplitStr,@Items);
        END
        IF(@Items<>'')
            INSERT INTO @SplitTable VALUES(@Items);
        RETURN
    END

    2.Fun_arrlen 分割字符串,返回长度

    CREATE FUNCTION [dbo].[Fun_arrlen]
    (    
        @Str varchar(max),
        @SplitStr varchar(max)
    )
    RETURNS int 
    AS
    begin
         Declare @i Int  
         Set @i = (Len(@Str) - Len(Replace(@Str,@SplitStr,'')))/Len(@SplitStr) +1 
         Return(@i)
    end

    3.Fun_GetStrIndex 模拟数组获取值

    CREATE FUNCTION [dbo].[Fun_GetStrIndex]
    (    
        @Str varchar(max),
        @SplitStr varchar(max),
        @index int
    )
    RETURNS varchar(max) 
    AS
    begin 
        declare @location int
        declare @start int
        declare @next int
        declare @seed int
    
        set @str=ltrim(rtrim(@str))
        set @start=0
        set @next=0
        set @seed=len(@SplitStr)
     
        set @location=charindex(@SplitStr,@str)
        while @location<>0 and @index>@next
        begin
            set @start=@location+@seed
            set @location=charindex(@SplitStr,@str,@start)
            set @next=@next+1
        end
        if @location =0 select @location =len(@str)+1
        return substring(@str,@start,@location-@start);
    end

    运行结果:

    欢迎指正:haizi2014@qq.com
  • 相关阅读:
    Etcd Web UI
    安装cfssl证书工具
    top命令
    解决k8s Get http://127.0.0.1:10252/healthz: dial tcp 127.0.0.1:10252: connect: connection refused
    k8s集群安装KubeSphere3.0
    k8s基于NFS部署storageclass实现pv并标记为一个默认的StorageClass
    k8s提示Unable to connect to the server: x509
    k8s安装Prometheus+Grafana
    开源日志管理ELK和Graylog区别
    mysql数据库查询结果导出
  • 原文地址:https://www.cnblogs.com/hcfan/p/5160422.html
Copyright © 2011-2022 走看看