标签:set 表值 -- nvarchar int separator SPLIT declare FN
-- 表值函数, 将字符串转列表。 -- 本函数不支持 “空格”作为分隔符,默认以逗号分隔。 -- 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;
标签:set,表值,--,nvarchar,int,separator,SPLIT,declare,FN 来源: https://www.cnblogs.com/samrv/p/14805644.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。