关于oracle重复数据合并以及.前面加0问题的解决
来源:互联网 发布:dvd自动播放软件 编辑:程序博客网 时间:2024/06/04 00:28
这段时间这做网站,其中用到Echars的一些方法,这就涉及到从oracle数据库中获取数据,于是就用到orcale的一些查询的方法,其中这个让重复数据合并的方法十分有用,于是想这这里分享出来,供大家参考。
下面先看看数据库的数据:
可以看到其中年份是重复的,我想把相同年份的RDTRQD和JSLY合并,代码如下:
select year, wmsys.wm_concat(RDTRQD) as RDTRQD,wmsys.wm_concat(trim(jsly)) as jsly from ODS10000029 group by year
运行效果如下:
这里用到了 wmsys.wm_concat(字段名)和trim(字段名)方法。wmsys.wm_concat(字段名)作用将需要合并的字段合并成一列,而trim(字段名)是为了消除数据的前后空格问题。但是查询出来了数据还是有问题,其中有几个数据.前面的0不见了,于是数据还是需要进行处理。
在.前面加0有两种方法:
第一种方法是用to_char()方法:select year, wmsys.wm_concat(to_char(RDTRQD,'fm999990.99999')) as RDTRQD from ODS10000029 group by year,它需要设置小数点都后面的位数,而且对整数会有一定的问题,其运行效果如图:
用于整数的结果如下:
对于整数后面会有个小数点这个问题,只需将fm999990.99999改成fm999990.09999这样在整数的小数点后面就会自动补0:
第二种方法是用decode(substr(字段名,1,1),'.','0'||字段名,字段名)的方法,个人比较推荐这种方法, 这个方法的作用就是先判断小数点前面是否有0,如果没有加上0。它对查询的出的整数没有影响,也不用设置小数后面的位数。其查询方法和查询结果如下:
select year, wmsys.wm_concat(decode(substr(RDTRQD,1,1),'.','0'||RDTRQD,RDTRQD)) as RDTRQD from ODS10000029 group by year
综上,对这次数据的处理方法为:select year, wmsys.wm_concat(decode(substr(RDTRQD,1,1),'.','0'||RDTRQD,RDTRQD)) as RDTRQD,wmsys.wm_concat(trim(jsly)) as jsly from ODS10000029 group by year 效果如下:
原创作品,未经允许请勿转载。
- 关于oracle重复数据合并以及.前面加0问题的解决
- oracle分页查询数据重复问题的解决
- oracle分页查询数据重复问题的解决
- oracle分页查询数据重复问题的解决
- oracle分页查询数据重复问题的解决
- oracle中rowid解决数据重复的问题
- 关于变量名前面加m的问题
- 关于变量名前面加m的问题
- mysql 并行写数据导致重复的问题,加间隙锁解决
- 关于oracle 去掉重复数据问题
- 关于Oracle中重复数据的处理
- oracle-小数点前面没有0的问题
- 关于集合追加写入文件中,会重复前面的内容的解决
- select int 型数据,前面加0
- 如何解决oracle分页查询数据重复问题
- 教您如何解决oracle分页查询数据重复问题
- Oracle 分页数据重复的问题
- Excel数据导入问题(给数据前面加半角单引号')
- 构造方法
- 求水仙花数
- Python 矩阵
- Image Is Everything UVALive
- 面向对象总结篇
- 关于oracle重复数据合并以及.前面加0问题的解决
- 电阻抗断层成像开源软件eidors3.8的入门使用方法
- NOIP模拟9.28
- 表示数值的字符串
- Struts2 流程详解
- C++异常处理
- 数组
- 动画(Animation)来回变换
- java语言编写链表的基本操作(链表的创建,插入,删除,打印,排序)