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

数据筛选
Oracle数据库中有一个面积字段flarea nvarchar2 类型,其中记录有的是数字、有的是字符串。我现在需求是要把属于数字的记录筛选出来,排除掉字符串的记录。要如何实现,允许写函数,希望写完整过程,谢谢高手指教
举例说明:id flarea
  1 139.00
  2 148.00
  3 133.00
  4 其他
  5 122.00
  6 平方米
  7 其他
  8 平方

筛选得到:id flarea
  1 139.00
  2 148.00
  3 133.00
  5 122.00

------解决方案--------------------
实测数据:
SQL code

CREATE TABLE T84
(
    ID NUMBER(4),
    flarea VARCHAR2(20)
);       
INSERT INTO T84 VALUES(1, '139.00');
INSERT INTO T84 VALUES(2, '148.00');
INSERT INTO T84 VALUES(3, '133.00');
INSERT INTO T84 VALUES(4, '其它');
INSERT INTO T84 VALUES(5, '122.00');
INSERT INTO T84 VALUES(6, '平方米');
INSERT INTO T84 VALUES(7, '其它');
INSERT INTO T84 VALUES(8, '平方');

------解决方案--------------------
先to_number(),再to_char() 看他们的length
------解决方案--------------------
探讨
那如果数据多了些特殊情况,要怎么写
举例说明:id flarea
1 0.123
2 148.00
3 03.780
4 000123
5 122.78
6 平方米
7 其他
8 0123.78

筛选得到:id flarea
1 0.123
2 148.00
5 122.78
因为面积肯定是正常的数值