博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
怎么把输入的以逗号隔开的多个字符串拆开
阅读量:6785 次
发布时间:2019-06-26

本文共 1192 字,大约阅读时间需要 3 分钟。

SET ANSI_NULLS ON 

GO 
SET QUOTED_IDENTIFIER ON 
GO 
/ 
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) 
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 
使用方法:

declare @str1 varchar(max)

set @str1 = '111,25,38'

select [Value] from SplitString(@str1, ',', 1)

本文转自51GT51CTO博客,原文链接: http://blog.51cto.com/yataigp/2049792,如需转载请自行联系原作者

你可能感兴趣的文章
oscache.properties文件配置
查看>>
新建索引的一些原则
查看>>
redis发布了集群版3.0.0 beta
查看>>
使用Gradle在嵌入式Web容器Jetty中运行Web应用
查看>>
100-98
查看>>
Innodb中的事务隔离级别和锁的关系
查看>>
算法:请找出数组中的某个数,它的左侧数字相加之和等于右边。
查看>>
vi / vim文档编辑器画图详解
查看>>
Oracle基本语句实例代码介绍
查看>>
excel表数据导入到mysql数据库中(自己做的练习保留)
查看>>
bash 函数使用,实现模块化编程
查看>>
LVS实现负载均衡
查看>>
LAMP架构下安装Discuz!论坛
查看>>
shell
查看>>
正则表达式
查看>>
我的友情链接
查看>>
spring MVC的第一次记录
查看>>
js获取 X-X-X N 天后 是 X年X月X日
查看>>
我的友情链接
查看>>
神奇的504 Bad Gateway Timeout
查看>>