我有一个表格,里面有一些'不正确'的数据。 数据的格式应为:
"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