34,593
社区成员
发帖
与我相关
我的任务
分享
CREATE Function GetStrLength(@strChar varchar(8000),@StartIndex Int,@Length Int)
Returns varchar(8000)
As
Begin
If len(@strChar)>@Length
Begin
If len(@strChar)>(@StartIndex+@Length)
Return SUBSTRING ( @strChar , @StartIndex , @Length )
Else
Begin
If (len(@strChar)> @StartIndex)
Return SUBSTRING ( @strChar , @StartIndex,(len(@strChar-@StartIndex)))
Else
Return " ";
End
End
Else
Return @strChar;
End
CREATE Function GetStrLength(@strChar varchar(8000),@StartIndex Int,@Length Int)
Returns varchar(8000)
As
Begin
If len(@strChar)>=@Length
Begin
If len(@strChar)>=(@StartIndex+@Length)
Return SUBSTRING ( @strChar , @StartIndex , @Length )
Else
Begin
If (len(@strChar)>= @StartIndex)
Return SUBSTRING ( @strChar , @StartIndex,(len(@strChar-@StartIndex)))
Else
Return '';
End
End
Return SUBSTRING ( @strChar ,@StartIndex,(len(@strChar-@StartIndex)))
End
具体是你想实现啥功能?
你这函数肯定是有问题的,只看这里就知道有问题:
set @return= SUBSTRING ( @strChar , @StartIndex,(len(@strChar-@StartIndex)))
红色部分怎么能做操作?
--不需要判断@length的,如:
create Function GetStrLength(@strChar varchar(8000),@StartIndex Int,@Length Int)
Returns varchar(8000)
As
Begin
declare @return varchar(8000)
if(@StartIndex<0 or @Length<0)
set @return = ''
else
begin
set @return=substring(@strChar,@StartIndex,@Length)
end
return @return
End
--这样:
CREATE Function GetStrLength(@strChar varchar(8000),@StartIndex Int,@Length Int)
Returns varchar(8000)
As
Begin
declare @return varchar(8000)
If len(@strChar)>@Length
Begin
If len(@strChar)>(@StartIndex+@Length)
set @return= SUBSTRING( @strChar , @StartIndex , @Length )
Else
Begin
If (len(@strChar)> @StartIndex)
set @return= SUBSTRING ( @strChar , @StartIndex,(len(@strChar-@StartIndex)))
Else
set @return= ''
End
End
Else
set @return= @strChar
return @return
End
CREATE Function GetStrLength(@strChar varchar(8000),@StartIndex Int,@Length Int)
Returns varchar(8000)
As
Begin
If len(@strChar)>@Length
Begin
If len(@strChar)>(@StartIndex+@Length)
Return SUBSTRING ( @strChar , @StartIndex , @Length )
Else
Begin
If (len(@strChar)> @StartIndex)
Return SUBSTRING ( @strChar , @StartIndex,(len(@strChar-@StartIndex)))
Else
Return ''
End
End
Else
begin
Return @strChar
end
return @strChar
End
CREATE Function GetStrLength(@strChar varchar(8000),@StartIndex Int,@Length Int)
Returns varchar(8000)
As
Begin
declare @retStr
If len(@strChar)>@Length
Begin
If len(@strChar)>(@StartIndex+@Length)
begin
set @retStr =SUBSTRING ( @strChar , @StartIndex , @Length )
end
Else
Begin
If (len(@strChar)> @StartIndex)
begin
set @retStr =SUBSTRING ( @strChar , @StartIndex,(len(@strChar-@StartIndex)))
end
Else
begin
set @retStr = ''
end
End
End
Else
begin
set @retStr = @strChar
end
Return @strChar
End
go
drop function GetStrLength
CREATE Function GetStrLength(@strChar varchar(8000),@StartIndex Int,@Length Int)
Returns varchar(8000)
As
Begin
If len(@strChar)>@Length
Begin
If len(@strChar)>(@StartIndex+@Length)
Return SUBSTRING ( @strChar , @StartIndex , @Length )
Else
Begin
If (len(@strChar)> @StartIndex)
Return SUBSTRING ( @strChar , @StartIndex,(len(@strChar-@StartIndex)))
Else
Return ' ';--用单引号
End
End
-- Else
Return @strChar;
End