需要从列中的字段中删除点(varchar2数据类型)。小数并不总是存在,但是当它是,它总是在第五个位置,并且它后面总是有两个零。 (12E4.00)我们需要保留零。
似乎合理使用了REGEXP_REPLACE,但是想知道是否还有纯粹的SQL方法来完成它。在100,000行和28,000个字段实例中嵌入了小数。
感谢所有帮助。
答案 0 :(得分:1)
听起来你只需要一个简单的REPLACE
SQL> with x as (
2 select '123E4.00' str from dual
3 union all
4 select '123K5.00' from dual
5 union all
6 select '123K123' from dual
7 )
8 select replace( str, '.' )
9 from x;
REPLACE(
--------
123E400
123K500
123K123
您需要将其转换为针对您的表格的UPDATE
语句
UPDATE some_table
SET some_column = REPLACE( some_column, '.' )
WHERE some_column != REPLACE( some_column, '.' )