如:
select to_number('123') from table 正常
select to_number('a123') from table 报错。如何能过滤掉a这个字符?
select to_number('123') from table 正常
select to_number('a123') from table 报错。如何能过滤掉a这个字符?
解决方案 »
- oracle的子查询里不让有order by 有什么好的解决办法么,我先说一下我的需求。。。。。
- 不小心把表给删了,怎么恢复啊?
- 如何用一条sql语句去掉两个日期中的周末
- 求解答,v_sql 为什么一直是null
- 动态sql语句问题
- 外表问题,再次发问.
- oracle的包是干什么用的?
- 动态sql问题,有错误提示
- 现有一个日文系统中Oracle8.1.7(utf-8)下面导出的help.dmp,导入中文系统的8.1.7的Oracle时失败
- 为什么oracle的sql语句的表名必须加“”???
- isqlplusctl start .操作系统找不到已输入的环境选项?
- 如何在一个表的某字段前面添加字段或者在某字段后添加一个字段?
ID(pk varchar2(20)) ...其他字段
ID字段为主键,并且允许英文字母,如现在有个id为'a123'。
需要对id进行max(id),取得最大值。
这时候当id为1...10的数字的时候,取到的id总是9,所以使用max(to_number(id))来对id进行数字转换。
这时考虑到id中有字母的话,就会报错。 有没有类似vb中的语法Int("a123")=>123这样的语法?
(Translate('a123','1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ','1234567890'))from dual结果
123
to_number
(Translate('a123','1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ','1234567890'))from dual
select to_number(
REGEXP_REPLACE('a123ch','[a-zA-Z/:.]','')
) from table; 用这个函数可以解决,用到正则表达式,不过这个函数10G以上才有
to_number
(Translate('a123','abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',' '))
from dual;
呵呵,写反了