【问题标题】:Oracle conditionally adding spaces into dataOracle 有条件地向数据中添加空格
【发布时间】:2019-03-01 13:23:45
【问题描述】:

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

“000  00000”

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

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

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

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

提前致谢!

【问题讨论】:

    标签: string oracle replace spaces


    【解决方案1】:

    这里是查找单个空格记录的查询,根据需要尝试做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     
    

    【讨论】:

      猜你喜欢
      • 2016-04-26
      • 2016-09-08
      • 1970-01-01
      • 1970-01-01
      • 2016-10-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-14
      • 1970-01-01
      相关资源
      最近更新 更多