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

本文共 1162 字,大约阅读时间需要 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)

转载于:https://blog.51cto.com/yataigp/2049792

你可能感兴趣的文章
新浪微博模拟登录–HTTPS方式
查看>>
Linux NFS配置小结
查看>>
当用户有登录到的限制时,远程桌面登录报错的解决
查看>>
Java--jvm性能优化课程之基本类型
查看>>
angular的canvas画图例子
查看>>
SELinux
查看>>
我的友情链接
查看>>
从标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号。...
查看>>
part 1--入门:
查看>>
Android APK应用安装原理(1)-解析AndroidManifest原理-PackageParser.parserPackage
查看>>
Spark 简介
查看>>
windows 7 下的 XP mode
查看>>
接口规范 13. 文件上传及管理相关接口
查看>>
类与封装的概念(十二)
查看>>
linux服务器crontab定时任务
查看>>
我非软件NSIS
查看>>
Windows server 2012安装.NET 3.5
查看>>
Spring 常用的注解及“依赖注入”的实现
查看>>
避免终端断掉,保存回话的方法
查看>>
Linux学习之: rpm包管理功能全解
查看>>