`
wzglovejava
  • 浏览: 6547 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

在sqlserver中自定义一个split方法(通过下标获取截取的数组中数据)

阅读更多
在使用sqlserver数据库开发时遇到了这个问题,查询资料发现没有这样的方法,在一个朋友的帮忙下写的,跟大家分享下,希望大家能提宝贵意见,进行改进和优化
if object_id('f_split') is not null drop function f_split 
create function [dbo].[f_split](@SourceSql varchar(8000),@StrSeprate varchar(10),@indexof int) 
returns nvarchar(50)
as 
begin 
declare @i as int
declare @temp_str as nvarchar(50)
set @SourceSql=rtrim(ltrim(@SourceSql))

while @indexof > 0
begin
	set @indexof = @indexof - 1
	set @i=charindex(@StrSeprate,@SourceSql)
	if @i <> 0
	begin
		set @temp_str = (left(@SourceSql,@i-1))
		set @SourceSql = right(@SourceSql,len(@SourceSql)-len(@temp_str)-len(@StrSeprate))
	end

	if @i = 0
	begin
		if @temp_str <> ''
		begin
			--取最后一个作为返回值
			set @temp_str = @SourceSql
			break
		end 
	end

end
return @temp_str
end
select dbo.f_split('A:B:c',':','1');
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics