新建sql数据库函数源码如下:
Create function [dbo].[SplitString]
(
@SourceStr varchar(8000), --字符串
@StrSeprate varchar(10), --分隔符
@StrIndex int --分隔位置
)
returns varchar(1000)
as
begin
declare @i int
declare @j int
declare @SeprateNum int
declare @ReturnStr varchar(1000)
set @SourceStr=rtrim(ltrim(@SourceStr)) --格式化字符串
set @i=charindex(@StrSeprate,@SourceStr) --获取分隔符位置
set @j=1
set @SeprateNum=1
while @i>=1 and @j<=@StrIndex
begin
set @ReturnStr=left(@SourceStr,@i-1) --获取数组第一个字符串
set @SourceStr=substring(@SourceStr,@i+1,len(@SourceStr)-@i) --获取字符串后半截子字符串
set @i=charindex(@StrSeprate,@SourceStr)
if(@i>=1) set @SeprateNum=@SeprateNum+1 --统计分隔符个数
set @j=@j+1
end
if @j=@StrIndex set @ReturnStr=substring(@SourceStr,@i+1,len(@SourceStr)-@i)
--返回数组最后一个字符串
else if(@SeprateNum+1<@StrIndex)set @ReturnStr=null --数组下标越界赋空值
return @ReturnStr
end
在SQL2005执行完成后,在对应数据库——可编程性——函数---标量值函数,刷新后可见该新建函数。
用法:select dbo.SplitString(String, '-',index) as ColumnName from table