日期:2014-05-17  浏览次数:20793 次

oracle中关于to_number用法
no为VARCHAR2类型,可能为NULL,可能为汉字,也可能为数字,要求查找出no为数字时,值大于999999的结果。

select * from t_dev t where to_number(t.no)>999999


上面的SQL报错,该如何修改?


------解决方案--------------------
select * from t_dev t 
where regexp_like(no,'^[0-9]+$')
and length(ltrim(no,'0'))>=7
;
------解决方案--------------------
select *
  from t_dev  t
 where translate(no, 'x0123456789', 'x') is null
   and t.no >= 999999