我有一个导入的数据集与文本列,我必须使用作为数字,并包含许多不同格式的数字。
如果找到千位分隔符,则让oracle自动将文本转换为数字会引发错误
我编写了一个简单的例程来测试oracle转换:
SELECT val, TRUNC(val, 0), MOD(val, 1) - 1
from (
select '8E4' val from dual union
select '8E-4' val from dual union
select '1,234.567' val from dual union
select '1.234' val from dual
);
有办法处理吗?谢谢
1条答案
按热度按时间t98cgbkg1#
可以使用case表达式在两种格式模型之间进行选择,例如:
因此,对于您的示例,您可以执行以下操作:
| 瓦尔|数量|截断(数量,0)|MOD(数量,1)-1|
| - -|- -|- -|- -|
| 8 E4型|八万元|八万元|-1个|
| 8 E-4型|.0008英寸|第0页| -.9992 |
| 一千二百三十四点五六七|一千二百三十四点五六七|小行星一千二百三十四| -.433 |
| 一点二三四|一点二三四|一个| -.766 |
fiddle