地址转拼音的问题
地址转拼音的问题,当地址里出现数字或字母时就出现问题:
declare @hanzi nvarchar(max),
@pinyin nvarchar(max),
@naddress nvarchar(max),
@addressen nvarchar(max),
@i int,
@k int,
@id int
select @address= '156 ',@id=1
begin
set @i=1
while @i <=len(@address)
begin
select @hanzi= substring(@address,@i,1)
print @hanzi
select @pinyin= case when datalength(@hanzi)=1 then @hanzi
when datalength(@hanzi) <> 1 then (select top 1 py2 from 汉字拼音表 where chs=@hanzi) end
--取汉字的拼音
print @pinyin
update 公司表 set addressen=addressen+ ' '+@pinyin where id=@id
select @i=@i+1
end
end
------解决方案--------------------nvarchar换成varchar试试
------解决方案--------------------地址里有数字,结果addressen就为null
没听懂
------解决方案--------------------datalength对nvarchar的都是2位,所有会查出null,用ascii码或者把@hanzi定义成varchar型