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

<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 728x15, 创建于 08-4-23MSDN */ google_ad_slot = "3624277373"; google_ad_width = 728; google_ad_height = 15; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 160x600, 创建于 08-4-23MSDN */ google_ad_slot = "4367022601"; google_ad_width = 160; google_ad_height = 600; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

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

没有,我们自己动手:

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

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

createfunction ufn_convertWideNumericToAnsi( @vstrInvarchar(1000))returnsvarchar(4000)asbegin declare@strReturnvarchar(4000) ,@bin varbinary(4000) ,@str varchar(4000) ,@stmpvarchar(4) ,@i  int ,@len int-- ,@vstrInvarchar(1000)

--set@vstrIn='031851001845' set@strReturn='' set@bin=convert(varbinary(4000),@vstrIn) execmaster..xp_varbintohexstr@bin,@strout  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)asvarchar(1)) set@strReturn=@strReturn+@stmp  set@i=@i+4 end--print@strReturnreturn @strReturnend

示例

select'031851001845'asORG, dbo.ufn_convertWideNumericToAnsi('031851001845')DES

ORG                     DES          ---------------------------------------------------031851001845            031851001845

<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 728x15, 创建于 08-4-23MSDN */ google_ad_slot = "3624277373"; google_ad_width = 728; google_ad_height = 15; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 160x600, 创建于 08-4-23MSDN */ google_ad_slot = "4367022601"; google_ad_width = 160; google_ad_height = 600; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
阅读更多
文章标签: sql
个人分类: 数据库
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭