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

没有,我们自己动手:

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

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

用自定义函数替换SQL中的全角数字为半角数字create function  ufn_convertWideNumericToAnsi
用自定义函数替换SQL中的全角数字为半角数字(
用自定义函数替换SQL中的全角数字为半角数字 
@vstrIn varchar(1000)
用自定义函数替换SQL中的全角数字为半角数字)
用自定义函数替换SQL中的全角数字为半角数字
returns varchar(4000)
用自定义函数替换SQL中的全角数字为半角数字
as
用自定义函数替换SQL中的全角数字为半角数字
begin
用自定义函数替换SQL中的全角数字为半角数字 
declare @strReturn varchar(4000)
用自定义函数替换SQL中的全角数字为半角数字  ,
@bin  varbinary(4000)
用自定义函数替换SQL中的全角数字为半角数字  ,
@str  varchar(4000)
用自定义函数替换SQL中的全角数字为半角数字  ,
@stmp varchar(4)
用自定义函数替换SQL中的全角数字为半角数字  ,
@i   int
用自定义函数替换SQL中的全角数字为半角数字  ,
@len  int
用自定义函数替换SQL中的全角数字为半角数字
--  ,@vstrIn varchar(1000)
用自定义函数替换SQL中的全角数字为半角数字

用自定义函数替换SQL中的全角数字为半角数字
--set @vstrIn ='031851001845'
用自定义函数替换SQL中的全角数字为半角数字
 set @strReturn=''
用自定义函数替换SQL中的全角数字为半角数字 
set @bin=convert(varbinary(4000),@vstrIn)
用自定义函数替换SQL中的全角数字为半角数字 
exec master..xp_varbintohexstr @bin@str out
用自定义函数替换SQL中的全角数字为半角数字 
用自定义函数替换SQL中的全角数字为半角数字 
select @str=stuff(@str,1,2,''
用自定义函数替换SQL中的全角数字为半角数字 
set @len=len(@str)
用自定义函数替换SQL中的全角数字为半角数字 
set @i=1
用自定义函数替换SQL中的全角数字为半角数字 
while @i<@len
用自定义函数替换SQL中的全角数字为半角数字 
begin
用自定义函数替换SQL中的全角数字为半角数字 
set @stmp = substring(@str,@i,4)
用自定义函数替换SQL中的全角数字为半角数字 
if(substring(@stmp,1,1<> 'A')
用自定义函数替换SQL中的全角数字为半角数字  
return @vstrIn
用自定义函数替换SQL中的全角数字为半角数字 
set @stmp = replace(@stmp,'A','')
用自定义函数替换SQL中的全角数字为半角数字 
set @stmp = replace(@stmp,'B','')
用自定义函数替换SQL中的全角数字为半角数字
--print @stmp
用自定义函数替换SQL中的全角数字为半角数字
 set @stmp = cast((convert(int,@stmp)-30as varchar(1))
用自定义函数替换SQL中的全角数字为半角数字 
set @strReturn = @strReturn + @stmp
用自定义函数替换SQL中的全角数字为半角数字  
set @i=@i+4
用自定义函数替换SQL中的全角数字为半角数字 
end
用自定义函数替换SQL中的全角数字为半角数字
--print @strReturn
用自定义函数替换SQL中的全角数字为半角数字
return  @strReturn
用自定义函数替换SQL中的全角数字为半角数字
end
用自定义函数替换SQL中的全角数字为半角数字
用自定义函数替换SQL中的全角数字为半角数字--示例
用自定义函数替换SQL中的全角数字为半角数字
用自定义函数替换SQL中的全角数字为半角数字
select '031851001845' as ORG,  dbo.ufn_convertWideNumericToAnsi('031851001845') DES
用自定义函数替换SQL中的全角数字为半角数字
用自定义函数替换SQL中的全角数字为半角数字ORG                      DES           
用自定义函数替换SQL中的全角数字为半角数字
------------------------ ---------------------------
用自定义函数替换SQL中的全角数字为半角数字
031851001845             031851001845
用自定义函数替换SQL中的全角数字为半角数字
用自定义函数替换SQL中的全角数字为半角数字

相关文章:

  • 2021-10-26
  • 2021-12-25
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-06
  • 2022-02-14
  • 2022-12-23
猜你喜欢
  • 2021-09-10
  • 2022-12-23
  • 2022-12-23
  • 2021-12-02
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案