来自 数据库 2020-04-30 11:36 的文章
当前位置: 网上澳门金莎娱乐 > 数据库 > 正文

sql 切割字符串Split函数网上澳门金莎娱乐

复制代码 代码如下: ---去除字符串中重復的值函數 create function StringRemove(@str nvarchar(2000)) returns varchar(2000) as begin declare @result nvarchar(2000),@temp nvarchar(1000) set @result='' set @temp='' while(charindex(',',@str)0) begin set @temp=substring(@str,1,charindex(',',@str)) if(charindex(@temp,@result)=0) set @result=@result+@temp set @str=stuff(@str,1,charindex(',',@str),'') end return @result end GO --('塗聚文','塗','塗聚文','1','23','1') --測試 select dbo.StringRemove('塗聚文,塗,塗聚文,1,23,1')

以前做数据切割时我们都用php或asp来实现,今天突然发现sql中的Split函数也可以实现在sql查询中实现切割字符串哦,有需要的朋友可以参考一下。

有时我们要用到批量操作时都会对字符串进行拆分,可是SQL Server中却没有自带Split函数,所以要自己来实现了。没什么好说的,需要的朋友直接拿去用吧

代码如下复制代码

SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO

/*by kudychen 2011-9-28 */CREATE function [dbo].[网上澳门金莎娱乐,SplitString]( @Input nvarchar(max), --input string to be separated @Separator nvarchar(max)=',', --a string that delimit the substrings in the input string @RemoveEmptyEntries bit=1 --the return value does not include array elements that contain an empty string)returns @TABLE table ( [Id] int identity(1,1), [Value] nvarchar(max)) asbegin declare @Index int, @Entry nvarchar(max) set @Index = charindex(@Separator,@Input)

while (@Index0) 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

returnend

如何使用:

代码如下复制代码

本文由网上澳门金莎娱乐发布于数据库,转载请注明出处:sql 切割字符串Split函数网上澳门金莎娱乐

关键词: