SQL 特定字符串分割
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL 特定字符串分割相关的知识,希望对你有一定的参考价值。
从后台传递参数,格式是111111,222222,123123,2342343,
循环取出‘,’间的值
第一次取出111111
第二次取出222222
第三次取出123123
逗号间数值的长度是不确定的
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
方法是其他地方找的
set @str1 = '1,2,3'select [Value] from [dbo].[SplitString](@str1, ',', 1)追问
其实,我有个方法,因为效率不太高,所以,想换一种,你这种效率更低一些。。。
参考技术A 假如你的是sql server,去百度一下:SQL实现split功能的函数 参考技术B string paramer="111111,222222,123123,2342343";string[] a = paramer.Split(',');
Console.Write(a[0]+"\r\n"+a[1]+"\r\n"+a[2]);追问
亲,看清题目,是SQL server
参考技术C split(", ");以上是关于SQL 特定字符串分割的主要内容,如果未能解决你的问题,请参考以下文章