• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

用自定义函数替换SQL中的全角数字为半角_sqlserver

sqlserver 搞代码 7年前 (2018-06-16) 78次浏览 已收录 0个评论

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

没有,我们自己动手:

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

http://www.gaodaima.com/34461.html用自定义函数替换SQL中的全角数字为半角_sqlserver

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

欢迎大家阅读《用自定义函数替换SQL中的全角数字为半角_sqlserver,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:用自定义函数替换SQL中的全角数字为半角_sqlserver

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址