优秀的编程知识分享平台

网站首页 > 技术文章 正文

SQLServer根据指定字符串拆分字符到临时表函数

nanyue 2024-08-27 18:03:30 技术文章 6 ℃

Create function [dbo].[split]

(

@SourceSql varchar(max),

@StrSeprate varchar(10)

)

returns @temp table(line varchar(max))

as

begin

declare @i int

set @SourceSql = rtrim(ltrim(@SourceSql))

set @i = charindex(@StrSeprate,@SourceSql)

while @i >= 1

begin

if len(left(@SourceSql,@i-1))>0

begin

insert @temp values(left(@SourceSql,@i-1))

end

set @SourceSql=substring(@SourceSql,@i+len(@StrSeprate),len(@SourceSql)-@i)

set @i=charindex(@StrSeprate,@SourceSql)

end

if @SourceSql <> ''

insert @temp values(@SourceSql)

return

end

调用:Select * From dbo.split('1003,1004,1005',',')
结果如下:
100310041005

----------------------------------------------------------------------------------------------------------------------------------

--@column 表示字段或者常量,@paddingChar 表示 补位字符, @len 补位数量, @returnStr

create function [dbo].[PadLeft](@column varchar(16),@paddingChar char(1),@len int)


returns varchar(16) as

begin

declare @returnStr varchar(16)

select @returnStr = isnull(replicate(@paddingChar,@len - len(isnull(@column ,0))), '') + @column

return @returnStr

end

select dbo.PadLeft(2,0,5)

最近发表
标签列表