首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-02-17 
大家帮我看看这个简单函数,不知道为什么会返回NULL?alterfunctiongetpassword(@avarchar(100))returnsvarc

大家帮我看看这个简单函数,不知道为什么会返回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   @i=@i+1
    set   @password=@password+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 @password=@password+char(ascii(substring(@a,@i,1))+1)
set @i=@i+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 @i=@i+1
set @password=@password+char(ascii(substring(@a,@i,1))+1)
print @@password
end
--return @password
--end

這樣看啊

热点排行