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判断是否有重复

猜你喜欢

转载自www.cnblogs.com/jianshuai520/p/10408390.html