我写的下面的函数,输入不同的字符串,有时会产生一样的返回值
最好不用随机函数,这样可以在不同的时间相同的字符串可以有相同的返回值
create function convertascii(@str nvarchar(200))
returns bigint
as
begin declare @result bigint,@ch nvarchar(10),@i int,@strlen int
set @i=1
set @strlen=len(@str)
set @result=0 while @i<=@strlen
begin
set @ch=substring(@str,@i,1)
set @result=@result+ascii(@ch)
set @i=@i+1
end return @result
end
最好不用随机函数,这样可以在不同的时间相同的字符串可以有相同的返回值
create function convertascii(@str nvarchar(200))
returns bigint
as
begin declare @result bigint,@ch nvarchar(10),@i int,@strlen int
set @i=1
set @strlen=len(@str)
set @result=0 while @i<=@strlen
begin
set @ch=substring(@str,@i,1)
set @result=@result+ascii(@ch)
set @i=@i+1
end return @result
end
returns bigint
as
begin declare @result bigint,@ch nvarchar(10),@i int,@strlen int
set @i=1
set @strlen=len(@str)
set @result=0 while @i<=@strlen
begin
set @ch=substring(@str,@i,1)
set @result=@result+ascii(@ch)*@i ---在这个加上当前的字符串*位置就好了
set @i=@i+1
end return @result
end
--这样就能区别下面两个字符串了,不知道lz是不是这个意思
select dbo.convertascii('ada')
select dbo.convertascii('aad')
如果是:
select dbo.convertascii('ad')
select dbo.convertascii('be')
也会变成一样