地址转拼音的问题,当地址里出现数字或字母时就出现问题:
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 [email protected]) end
--取汉字的拼音
print @pinyin
update 公司表 set addressen=addressen+ ' '[email protected] where [email protected]
select @[email protected]+1
end
end
------解决方案--------------------
nvarchar换成varchar试试
------解决方案--------------------
地址里有数字,结果addressen就为null
没听懂
------解决方案--------------------
datalength对nvarchar的都是2位,所有会查出null,[email protected]