ITPUB论坛 » MS SQL Server » 如何将字符串中的大写数字转换成小写的!
新一届的微软MVP评选已经开始,欢迎各位推荐!
2008-7-4 17:34 xnk9499
如何将字符串中的大写数字转换成小写的!

例如:
   天祥二路111巷6號十三樓
  转换成:
   天祥二路111巷6號13樓

地址长度不一致,字符串长度不一致!


各位达人,赐教了!



[color=Blue]问题已解决!方法笨了点:[/color]

有一个特征诶,所有的大写的都在“楼”的前面诶!
所以,字符是可以定位的!

查询出符合条件的条件是:
    charindex('楼',address)>0 and substring(address,charindex('楼',address)-1,1) in ('一','二','三','四','五','六','七','八','九','十')

然后在Select 中分三种情况处理:
    一楼/十一楼/三十一楼

再用:case substring(address,charindex('楼',address)-1,1)='一' then 1 去计算值!

再替换掉:
   replace(address,substring(address,charindex('楼',address)-1,1), cast(case substring(address,charindex('楼',address)-1,1)='一' then 1  end as varchar)

[[i] 本帖最后由 xnk9499 于 2008-7-5 21:31 编辑 [/i]]

2008-7-4 17:50 smthgdin
天哪~~~~~~~

2008-7-4 23:40 bailiu2002
手動update 呵呵
控制應用程序的輸入不是更好!

2008-7-5 08:31 dhs0227
用繁琐的简单的方法每段对比

2008-7-5 09:09 Ryan-liumin
汗啊

2008-7-5 21:15 xnk9499
晕,手动!一百多万条诶!

2008-7-6 07:27 jvkojvko
写个函数吧,呵呵

2008-7-6 15:34 smthgdin
解决了记得贴出来共享。
用二进制比较可以实现吗?不过应该很慢。

2008-7-6 15:36 smthgdin
select * from tb where qty2 like '%号%' 然后在用2进制处理?或者说用ascII处理?

页: [1]


Powered by ITPUB论坛