SQL数据清理

SQL数据清理,sql,sql-server,Sql,Sql Server,我想看看是否有人能帮我清理数据: 我需要识别一行中至少有5个数字的列。列中还有其他数据 我需要识别一行中正好有九个数字并且有“(”一个空格)的列。这个组合周围还有其他数据 示例-XXXXXXXXX( 我将把这个逻辑应用于一个case表达式。问题是,无论您做什么,它都是对表的扫描 select * from your_table where ( your_column like '%11111$' or your_column like '%22222%'

我想看看是否有人能帮我清理数据:

  • 我需要识别一行中至少有5个数字的列。列中还有其他数据

  • 我需要识别一行中正好有九个数字并且有“(”一个空格)的列。这个组合周围还有其他数据

  • 示例-XXXXXXXXX(


    我将把这个逻辑应用于一个case表达式。

    问题是,无论您做什么,它都是对表的扫描

      select *
      from your_table 
      where (
        your_column like '%11111$' 
            or your_column like '%22222%' 
            or your_column like '%33333%'
            or your_column like '%44444%'
            or your_column like '%55555%'
            or your_column like '%66666%'
            or your_column like '%77777%'
            or your_column like '%88888%'
            or your_column like '%99999%'
            or your_column like '%00000%'
       or your_column like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] ('
    
    这需要是一个简单的一次性传递程序,并且在数据库的备份映像上

    你也可以用一种古怪的方式使用REPLACE来消除字母,然后把它们全部放到临时表中,然后用锤子敲打它

    我做了一些不同的事情

    我根据字符串的构建方式查找位置标记,并应用有意义的名称变量,例如

    第一个是左对齐,第三个是空格,还有其他类似的东西,然后,如果你的数字应该在两个标记之间,只需在这些标记之间的列上做一个子串


    在真实的案例中,我会发现“(“最后

    否决票的原因?@GeorgeMenoutis,因为我相信你知道SO的官方指导不会提供否决票的原因,将鼠标悬停在否决票按钮上会给出理由。(不,不是我)。缺少示例数据和预期结果是一个很好的原因。请简化并尽可能帮助您:。谢谢,我解决了第一个问题。第二个问题似乎与(.real-example:125369875)不兼容(