1、先order by 排序一下这个字段!
select T.*
  from 表 t
order by t.val2、数字和日期样子的应该在前面,之后手工查到字符类型的数据前一个number,如19:
select T.*
  from 
  (select T.*
    from 表 t
   order by t.val)
where rownum<=19
3、追加剔除带‘/‘的日期型数据,之后可以to_number()了:
select T.*
  from 
  (select T.*
    from 表 t
   order by t.val)
where rownum<=19
and  instr(t.val,'/')<1
and to_number(val)>7

解决方案 »

  1.   

    这个简单点:
    select a.*
      from 
      (select *
        from 表 t
       where ltrim(trim(val),'0123456789') is null
       ) a
    where to_number(trim(a.val)) > 7 
      

  2.   

    要看你的日期格式是什么样的了  要是格式全是数字的话就区分不出是数字还是日期了若日期格式不全是数字的话 可以用这个select * from (select * from test where lower(val)=upper(val)) where to_number(val)>7