Oracle数字处理问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 02:33:22
功能描述如下:
把9900997改成9097
9900992改成9092

也就是如果有两位相同的,那么就缩成1位
类型是number的

用存储过程写。
麻烦大侠们给指引下思路。 谢谢

思路1:
假设需要处理的数字为n。
n/100000与n/10000比较
分支 1 相同则缩成一位
分支 2 不同则比较n/10000与n/1000
分支 1 相同...
分支 2 不同...

依次类推 最后把缩的数字*10000+*10000...累加

思路2 将number类型转换成varchar2类型
然后提取字符比较 处理过程差不多
最后把不需要的字符删除
最后剩下的转化成number 这个可能简单些

你试试吧 告诉我结果

如果只是达到上面说的这样,不用过程也可以实现。
oracle :
update table set a=(substr(a,2,3)||substr(a,6,7))