2012年5月1日火曜日

SQLServer 2005 split 関数 独自版

********* 以下をそのまま実行 ********** create function [dbo].[split](@str as varchar(1000), @kugiri as char(1), @idx as int) returns varchar(1000) as begin declare @result varchar(1000) declare @loop int set @loop = 0 while (@loop < @idx) begin select @result = case when charindex(@kugiri, rtrim(@str)) > 0 then substring(rtrim(@str), 1, charindex(@kugiri, rtrim(@str)) -1) else rtrim(@str) end select @str = case when charindex(@kugiri, @str) > 0 then substring(@str, charindex(@kugiri, @str)+1, 1000) else null end set @loop = @loop + 1; end return @result end --使用例 -- select dbo.split('aaazbbbzccc', 'z', 2) --結果 -- bbb ********* 以上、ここまで ********** 元ネタ http://blog.livedoor.jp/hashikure3/archives/20478.html

0 件のコメント:

コメントを投稿