当前位置: 代码迷 >> Sql Server >> 大家帮小弟我看看这个简单函数,不知道为什么会返回NULL
  详细解决方案

大家帮小弟我看看这个简单函数,不知道为什么会返回NULL

热度:75   发布时间:2016-04-27 16:28:29.0
大家帮我看看这个简单函数,不知道为什么会返回NULL?
alter   function   getpassword(@a   varchar(100))
returns   varchar(100)
begin
declare   @i   smallint,@password   varchar(100)
set   @i=0
set   @password= ' '
while   (@i <=len(@a))
begin
    set   @[email protected]+1
    set   @[email protected]+char(ascii(substring(@a,@i,1))+1)
end
return   @password
end

--测试
select   dbo.getpassword( 'abcd ')

----------------------------------------------------------------  
NULL

(所影响的行数为   1   行)


------解决方案--------------------
alter function getpassword(@a varchar(100))
returns varchar(100)
begin
declare @i smallint,@password varchar(100)
set @i=0
set @password= ' '
while (@i <=len(@a))
begin
set @[email protected]+char(ascii(substring(@a,@i,1))+1)
set @[email protected]+1 --这里换一下就可以了
end
return @password
end


------解决方案--------------------
while (@i <=len(@a))改为while (@i <=len(@a)-1)
------解决方案--------------------
--alter function getpassword(@a varchar(100))
--returns varchar(100)
--begin
declare @a varchar(100)
declare @i smallint,@password varchar(100)
set @a= 'password '
set @i=0
set @password= ' '
while (@i <=len(@a))
begin
set @[email protected]+1
set @[email protected]+char(ascii(substring(@a,@i,1))+1)
print @@password
end
--return @password
--end

這樣看啊
  相关解决方案