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

 

转载于:https://www.cnblogs.com/jianshuai520/p/10408390.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值