Oracle 有条件地向数据中添加空格



我有一个表格,里面有一些'不正确'的数据。 数据的格式应为:

"000  00000"

有两个空间。 对于不同的记录,空格可能不同,因此例如,一条记录可能是前一个示例,另一条记录可能是"00 00 0000    "。 问题是数据进来了,在某些情况下只有一个空格。(所以"000 00000"(。

理想情况下,id 喜欢在查询中执行此操作,以修复通过更新语句加载的数据。 如果这在 oracle 之外更容易完成,那很好,我可以重新加载数据(这是一点数据,近 400,000 行(。

找到单个空格并根据需要添加另一个空格的最简单方法是什么,或者如果已经有两个空格,则不要管它?

我目前正在进行一个查询,以在空格上拆分字符串,修剪数据,然后将其全部与 2 个空格放在一起......它在测试中效果不佳。

提前感谢!

这里是查找单个空格记录的查询,请尝试根据需要制作CASE语句。

WITH sample_data AS (SELECT '000  00000' value FROM dual UNION ALL
SELECT '00  00  0000' value FROM dual UNION ALL
SELECT '000 00000' value FROM dual )

Select * from  sample_data where REGEXP_COUNT(VALUE,'[[:space:]]') =1     

最新更新