oracle sql字符串转数字问题

用to_number('123')可以转成数字123,但是当to_number('123ab')这种不能转的字符串我希望得到0的结果,应该怎么做。
最新回答
╰堕落的青春

2024-04-17 05:46:35

1.将

字符串
类型转换为数字类型。此方法使用tonumber()直接转换。具体语法是tonumber(STR)。

2.将数字类型转换为字符串类型。此转换使用to_char(),这有点像上面的to_number()模式。999代表相同的内容。

3.将日期类型转换为字符串类型。实际上,此方法还使用到ˊchar(),它将日期格式转换为所需的格式类型。这种方法更加个性化。

4.下面的代码将日期类型转换为公共字符串类型,这是一种更常见、更完整的字符串格式。

5.将字符串类型转换为日期类型。此转换方法使用to_date()。用法也相对简单,转换后的日期格式也是自定义的。

6.完成效果图。

清风不语

2024-04-17 09:37:12

这个你估计得自定义函数了,不能直接用to_number

创建函数

create or replace function isNumber(p in varchar2)
return number
is
test number;
begin
test := to_number(p);
return test;
exception
when VALUE_ERROR then return 0;
end;

 

测试1,纯数字

测试2 带非数字的字符

测试3,负数

 

测试4 小数

测试5  0

 

总之就是测试5和测试2的结果是一样,这个你看你打算怎么解决吧

梦似曾见

2024-04-17 09:35:02

自己写一个函数 判断一下输入字符中 是否有数字外的字符 如果有 直接 返回0 ,否则返回数字
而后用到sql中