欢迎光临
我们一直在努力

用自定义函数替换SQL中的全角数字为半角数字-数据库专栏,SQL Server

建站超值云服务器,限时71元/月

在我们使用mssql的时候,有时表中有一些是全角的数字,但我们的系统不能够正确的使用它们,这时我们要把他们替换为半角数字。而sql自己好像没有这个函数。

没有,我们自己动手:

下面就是我自己写的一个函数,当然,我的数据量小,没有考虑性能!

—  把全角数据转换成半角数字(注意,这个只能转换全是全角的,在第一个半角数据时返回)–  公司:石家庄创联科技–  编写:牛昆亮  qq:273352165

create function  ufn_convertwidenumerictoansi( @vstrin varchar(1000))returns varchar(4000)asbegin declare @strreturn varchar(4000)  ,@bin  varbinary(4000)  ,@str  varchar(4000)  ,@stmp varchar(4)  ,@i   int  ,@len  int–  ,@vstrin varchar(1000)

–set @vstrin =031851001845 set @strreturn= set @bin=convert(varbinary(4000),@vstrin) exec master..xp_varbintohexstr @bin, @str out  select @str=stuff(@str,1,2,)  set @len=len(@str) set @i=1 while @i<@len begin set @stmp = substring(@str,@i,4) if(substring(@stmp,1,1) <> a)  return @vstrin set @stmp = replace(@stmp,a,) set @stmp = replace(@stmp,b,)–print @stmp set @stmp = cast((convert(int,@stmp)-30) as varchar(1)) set @strreturn = @strreturn + @stmp  set @i=@i+4 end–print @strreturnreturn  @strreturnend

示例

select 031851001845 as org,  dbo.ufn_convertwidenumerictoansi(031851001845) des

org                      des           ———————— —————————031851001845             031851001845

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 用自定义函数替换SQL中的全角数字为半角数字-数据库专栏,SQL Server
分享到: 更多 (0)

相关推荐

  • 暂无文章