我想查一个字段是varchar转换成int
用来判断<25以下的数据
可是现在有少量特殊字符不能转换int
想按照20140101-20140202这种的时间把小于25数据查出来,不能转换的也查出来
------解决思路----------------------
看不懂呢?给出表结构再给点示例数据吧,啥小于25 啊?
------解决思路----------------------
楼主这种你用正则表达式替换,把非数字替换成空’‘字符串。
------解决思路----------------------
利用正则对数据进行拆分
select REGEXP_SUBSTR(A, '正则表达式', 1, LEVEL) A,B,C
from T
CONNECT BY LEVEL <= REGEXP_COUNT(A, '正则表达式')
and rowid= prior rowid
and prior dbms_random.value is not null;
------解决思路----------------------
先将不能转换的数据替换为“”,然后再用to_number()来转换,时间的类型直接比较就可以了
下面一个转换的一个小列子:
select * from tb_object t
where to_number(t.id) = 2