用自界说函数替代SQL中的全角数字为半角数字
发布时间:2018-08-21 15:49:23 所属栏目:电商 来源:站长网
导读:在我们行使MSSQL的时辰,偶然表中有一些是全角的数字,但我们的体系不可以或许正确的行使它们,这时我们要把他们替代为半角数字。而SQL本身仿佛没有这个函数。 没有,我们本身下手: 下面就是我本身写的一个函数,虽然,我的数据量小,没有思量机能! -- 把全
在我们行使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 ='03180?馨01845' 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 '03180?馨01845' as ORG, dbo.ufn_convertWideNumericToAnsi('03180?馨01845') DES ORG DES ------------------------ ---------------------------03180?馨01845 031851001845 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |