SQL 根据指定字符拆分字符串
CREATE FUNCTION [dbo].[F_StringSplit] ( @STR NVARCHAR(MAX)=‘‘, @SPLITER NVARCHAR(20)=‘‘) RETURNS @TB TABLE(TB_V NVARCHAR(200)) AS BEGIN DECLARE @NUM INT, @POS INT,@NEXT_POS INT SET @NUM=0 SET @POS=1 WHILE (@POS <=LEN(@STR)) BEGIN SELECT @NEXT_POS=CHARINDEX(@SPLITER,@STR,@POS) IF (@NEXT_POS=0 OR @NEXT_POS IS NULL) --BEGIN SELECT @NEXT_POS=LEN(@STR)+1 INSERT INTO @TB VALUES(RTRIM(LTRIM(SUBSTRING(@STR,@POS,@NEXT_POS-@POS)))) SELECT @POS=@NEXT_POS +1 --END END RETURN END
调用:
select * from DBO.F_StringSplit(‘5,6,2,3,‘,‘,‘)
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。