当初数据库的某张表的公司信息录入时不够规范,name字段出现了【广东省微生物所】和【广东微生物研究所】这样的相似公司名情况,而这两个公司又都有相关的委托单产生。 
        现在想对这些数据整理,想找出是否还有类似的名字相似,但实际上是同一家公司,可以合并为一个的该字段的数据,请教一下各位大神有什么好的方法建议一下。ORACLE刚刚上手,懂得不多,请多多指教!

解决方案 »

  1.   

    想要得到结果,就要从你的业务场景中梳理出来这些数据有什么共同点,比如你提供的这两条数据就可以用 like '广东省微生%'来提取,其他的相似数据,就需要你自己去总结有什么特点,然后才能提取处理。
      

  2.   

    根据实际数据的规则来梳理,多看下数据找出规则来,然后根据规则update
      

  3.   

    oracle 10g 可以使用UTL_MATCH.EDIT_DISTANCE_SIMILARIT 函数来获取2个文本的相似度;
    参考oracle官方文档:http://docs.oracle.com/cd/E14072_01/appdev.112/e10577/u_match.htm#CHDGDIDJ
      

  4.   


    这样的话只能写个procedure咯,先构建一个中间表A,然后用游标遍历业务表,用上面这个函数判断表A中是否存在相似度>X的记录,有就continue,没有就写入到表A,这样做的话会有点慢。
      

  5.   


    这样的话只能写个procedure咯,先构建一个中间表A,然后用游标遍历业务表,用上面这个函数判断表A中是否存在相似度>X的记录,有就continue,没有就写入到表A,这样做的话会有点慢。可不可以提供一些相关的语句给我参考一下,谢谢!