• FN_SPLIT-表值函数, 将字符串转列表


    --  表值函数, 将字符串转列表。
    -- 本函数不支持 “空格”作为分隔符,默认以逗号分隔。 
    -- 2021/05/24
    CREATE FUNCTION FT_SPLIT(
        @STRING NVARCHAR(4000),
        @separator NVARCHAR(10)
    	)
    	RETURNs @TABLE TABLE (ROW_ID INT, COLUMN_VALUE NVARCHAR(512))
    	-- WITH ENCRYPTION
    AS 
    BEGIN 
      declare @return nvarchar(400);
      declare @tmpStr nvarchar(4000);
      declare @i int;
      declare @len int; 
      declare @rowid int;
      declare @value nvarchar(400);
      declare @pos int;
    /*
    例子:
    SELECT * FROM DBO.FT_SPLIT('ABC,DECLARE,FGH,MONTH,Order',',')
    返回
    ROW_ID  COLUMN_VALUE
    ------  ------------
    1	ABC
    2	DECLARE
    3	FGH
    4	MONTH
    5	Order
    */  
      
      -- 设置默认豆号(“,”)为分隔符
      if len(isnull(@separator,''))=0
        set @separator = ',';
    	
      if @string =  @separator
      begin
         set @return = @string;
      end;
      -- 原字符串与分隔字符串并接 
      set @tmpstr = @string + @separator;
    
      set @i=0 ;
      set @len = 0;
      set @rowid = 0;
      set @pos =0;
      while @i <= len(@tmpstr)
      begin
         set @len = @len+1;
    	 if substring(@tmpstr,@i,1) = @separator 
    	 begin
    	   set @rowid = @rowid +1 ;
    	   set @value = substring(@tmpstr,@pos,@len-1);
    	   insert into @table(ROW_ID, COLUMN_VALUE) 
    	     VALUES (@ROWID , @value);
    	   set @len = 0;	
    	   set @pos = @i+1;  
    	 end;
         
    	 SET @i= @i+1;
      end;
      
     -- returns(@table);
      return 
    END; 
    	
    	
    

      

    优质生活从拆开始
  • 相关阅读:
    基于讯飞语音API应用开发之——离线词典构建
    在Linux下安装redis
    java学习路线
    怎么做压力测试
    性能测试概念及参数介绍
    总结1-JMeter压力测试
    在软件测试面试过程中如何进行自我介绍?
    Python模块常用的几种安装方式
    Jmeter(三)关联数组
    Jmeter(二)关联
  • 原文地址:https://www.cnblogs.com/samrv/p/14805644.html
Copyright © 2020-2023  润新知