当前位置: 代码迷 >> Sql Server >> 急写一函数,根据传的字符串不同,返回唯一ascii值,该怎么处理
  详细解决方案

急写一函数,根据传的字符串不同,返回唯一ascii值,该怎么处理

热度:37   发布时间:2016-04-27 21:06:18.0
急,写一函数,根据传的字符串不同,返回唯一ascii值
我写的下面的函数,输入不同的字符串,有时会产生一样的返回值
最好不用随机函数,这样可以在不同的时间相同的字符串可以有相同的返回值
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 <[email protected]    
    begin      
set   @ch=substring(@str,@i,1)
set   @[email protected]+ascii(@ch)
set   @[email protected]+1    
    end

        return   @result
end

------解决方案--------------------
直接用checksum函数。例如:select checksum( 'asdf '),checksum( 'asdfg ')
------解决方案--------------------
alter 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 <[email protected]
begin
set @ch=substring(@str,@i,1)
set @[email protected]+ascii(@ch)[email protected] ---在这个加上当前的字符串*位置就好了
set @[email protected]+1
end

return @result
end


--这样就能区别下面两个字符串了,不知道lz是不是这个意思
select dbo.convertascii( 'ada ')
select dbo.convertascii( 'aad ')
------解决方案--------------------
不是把,我显示的是 297和300
你看我给你改的函数了么
  相关解决方案