create function f_split(@SourceSql varchar(8000),@StrSeprate varchar(10)) 返回的是一个table,所以执行要用如下格式:select * from dbo.f_split('ABC:BC:C:D:E',':') 自定义取出第几个分割字符前的字符串,默认位置(0)
CREATE
FUNCTION
[
dbo
]
.
[
split
]
( @str nvarchar ( 4000 ), @code varchar ( 10 ), @no int ) RETURNS varchar ( 200 ) AS BEGIN declare @intLen int declare @count int declare @indexb int declare @indexe int set @intLen = len ( @code ) set @count = 0 set @indexb = 1 if @no = 0 if charindex ( @code , @str , @indexb ) <> 0 return left ( @str , charindex ( @code , @str , @indexb ) - 1 ) else return @str while charindex ( @code , @str , @indexb ) <> 0 begin set @count = @count + 1 if @count = @no break set @indexb = @intLen + charindex ( @code , @str , @indexb ) end if @count = @no begin set @indexe = @intLen + charindex ( @code , @str , @indexb ) if charindex ( @code , @str , @indexe ) <> 0 return substring ( @str , charindex ( @code , @str , @indexb ) + len ( @code ), charindex ( @code , @str , @indexe ) - charindex ( @code , @str , @indexb ) - len ( @code )) else return right ( @str , len ( @str ) - charindex ( @code , @str , @indexb ) - len ( @code ) + 1 ) end return '' END ---------------------------------
returns varchar(100) AS begin declare @i int select @result = '' while @i<=@len return @result end |
SQL split函数
最新推荐文章于 2019-06-22 15:23:12 发布