Oracle查询字符串数据进行排序,以及去重复


原本的的一张表,填写数据的字段为字符串varchar2类型,然后进行排序的时候,就会出现问题。会默直接默认判断为第一个数字9最大,而不判断整个数字的大小。

所以,就要用到TO_NUMBER函数

 

select * from T_GRGJJJCXX t order by TO_NUMBER(t.c_ye) desc

 

直接就可以把这个纯数字的字段改成number类型进行排序。

然后查询的时候,发现数据重复过多,这时候,根据某个字段判断重复数据,我初步根据的是姓名去判断,我写的为

select t.name,
       t.C_GSMC,
       TO_NUMBER(t.c_ye) as 余额,
       TO_NUMBER(t.c_byjce) as 本月缴存额,
       TO_NUMBER(t.c_gzjs) as 工资基数
  from T_GRGJJJCXX t
 where rowid =
       (select max(rowid) from T_GRGJJJCXX t1 where t.name = t1.name)
 order by TO_NUMBER(t.c_ye) desc

  查找一个表根据rowid判断是否有重复

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM