PCB MS SQL 将字符串分割,并指定索引返回字符串(标量函数)
Create FUNCTION [dbo].[SplitIndex] ( @str AS VARCHAR(max), @Index AS INT, @SplitChar AS VARCHAR(10) = '/' ) RETURNS VARCHAR(50) AS BEGIN DECLARE @ReturnStr varchar(50) --待分拆的字符串 DECLARE @tab TABLE(id int IDENTITY(1,1), col varchar(max)) --建立临时表保存分割后的字符 DECLARE @splitlen INT SET @splitlen = LEN(@SplitChar+'a')-2 WHILE CHARINDEX(@SplitChar,@str)>0 BEGIN INSERT @tab VALUES(LEFT(@str,CHARINDEX(@SplitChar,@str)-1)) SET @str = STUFF(@str,1,CHARINDEX(@SplitChar,@str)+@splitlen,'') END INSERT @tab VALUES(@str) SELECT @ReturnStr = col FROM @tab WHERE id = @Index IF (@ReturnStr IS NULL) BEGIN SET @ReturnStr = '' END RETURN @ReturnStr END
示例代码:
SELECT [dbo].[SplitIndex]('1.5oz/1.0oz',1,'/') SELECT [dbo].[SplitIndex]('1.5oz/1.0oz',2,'/')
作者:pcbren 微信号:yadnfku QQ号: 254566449
博客地址:https://www.cnblogs.com/pcbren/
声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。非商业,未授权,贴子请以现状保留,转载时必须保留此段声明,且在文章页面明显位置给出原文连接。
如果大家感觉我的博文对大家有帮助,请推荐支持一把。