sql自定义函数实现字符串分割Split()功能
2017-05-12 14:38
399 查看
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE function [dbo].[SplitString] ( @Input nvarchar(max), @Separator nvarchar(max)=',', @RemoveEmptyEntries bit=1 ) returns @TABLE table ( [Id] int identity(1,1), [Value] nvarchar(max) ) as begin declare @Index int, @Entry nvarchar(max) set @Index = charindex(@Separator,@Input) while (@Index>0) begin set @Entry=ltrim(rtrim(substring(@Input, 1, @Index-1))) if (@RemoveEmptyEntries=0) or (@RemoveEmptyEntries=1 and @Entry<>'') begin insert into @TABLE([Value]) Values(@Entry) end set @Input = substring(@Input, @Index+datalength(@Separator)/2, len(@Input)) set @Index = charindex(@Separator, @Input) end set @Entry=ltrim(rtrim(@Input)) if (@RemoveEmptyEntries=0) or (@RemoveEmptyEntries=1 and @Entry<>'') begin insert into @TABLE([Value]) Values(@Entry) end return end
调用函数如下:
select [Value] from [dbo].[SplitString](‘胶原蛋白/胶原/胶原水解物/’, ‘/’, 1)
select [Value] from [dbo].[SplitString](‘胶原蛋白/胶原/胶原水解物/’, ‘/’, 0)
运行结果如下:
里面还有个自增的[Id]字段,在某些情况下有可能会用上的,例如根据Id来保存排序等等。
例如根据某表的ID保存排序:
update a set a.[Order]=t.[Id] from [dbo].[表] as a join [dbo].SplitString(‘1,2,3’, ‘,’, 1) as t on a.[Id]=t.[Value]
相关文章推荐
- sql用特定字符分割字符串,实现split功能
- mysql函数split功能实现,mysql分割字符串split
- SqlServe中分割字符串实现 类似split()功能
- SQL Serve中实现字符串分割(split)的功能函数
- 【Python】实现字符串分割功能 类似于str.split()
- 用Matlab实现字符串分割(split)
- MySQL里实现类似SPLIT的分割字符串的函数
- 实现Oracle的字符串分割(split)[摘录]
- C#实现字符串按多个字符采用Split方法分割
- C++:实现split分割字符串 - 改进
- C/C++实现split分割字符串
- C++:实现split分割字符串
- JS实现Split分割字符串同时允许被分割出的字符串中存在分割符号
- C#实现字符串按多个字符采用Split方法分割
- lua字符串分割 string.split实现
- c/cpp中如何分割字符串,类似于split的功能
- 字符串分割split_string:用vector和string容器实现
- 用递归实现字符串分割(Split)[SQL 2005]
- C#实现字符串按多个字符采用Split方法分割
- C#实现字符串按多个字符采用Split方法分割