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