Where子句只有number-convertable行

时间:2016-03-31 07:40:21

标签: sql oracle casting numbers

我有一个包含2列的表

COLNUM | COLSTR
---------------
1      | 001223
2      | 002234
3      | ds2-dd
4      | 003344

我想像这样查询

SELECT * FROM TABLE WHERE CAST(COLSTR AS NUMBER) IN (1223,3344)

但是由于第4行无法转换为数字,因此查询失败。我可以创建一个可以消除非数字可转换行的视图,但我想用一个查询来实现。我该怎么做?

Oracle 11g。

感谢。

1 个答案:

答案 0 :(得分:1)

我建议使用正则表达式

SELECT * FROM TABLE WHERE REGEXP_LIKE(COLSTR,'^[0-9]$')