oracle 求sql,表中有个字段companyName,这个字段中的值如果有相似值则更新为相同值

时间:2021-07-03 15:09:40
oracle 求sql,表中有个字段companyName,这个字段中的值如果有相似值则更新为相同值,比如:北京科技公司和北京科技相似,则更新为两个都为北京科技公司或者都为北京科技。求大神

10 个解决方案

#1


引用 楼主 love417483544 的回复:
oracle 求sql,表中有个字段companyName,这个字段中的值如果有相似值则更新为相同值,比如:北京科技公司和北京科技相似,则更新为两个都为北京科技公司或者都为北京科技。求大神

怎么算相似。。前几个字相同还是什么判断条件

#2


建议楼主将表主键列和companyName都select出来,然后excel做update脚本,更新一下。

#3


如果数据量不大的话,把companyName 这个字段group 一下, 然后根据数据分析,如果类似你提的这种就直接replace(公司',''),如果有其他情况,再具体分析呗,谁能一下给出来一个sq,你都没有提供规则

#4


update  a  set companyName,=‘北京科技公司’ where companyName, like'%北京科技%'

#5


引用 4 楼 py418578291 的回复:
update  a  set companyName,=‘北京科技公司’ where companyName, like'%北京科技%'


你好,这个我是知道的,主要是两个名字都是不确定性的,并且数据量也比较多。我这样说吧,
A表有字段companyName;
B表也有字段companyName;
如果A表的companyName某一个值与B表中的companyName某一个值相似(like),则用B表中的值将A表中的值进行更新。
即:
若A.companyName like B.companyName,
则update A set A.companyName=B.companyName

#6


A表有字段companyName;
B表也有字段companyName;
如果A表的companyName某一个值与B表中的companyName某一个值相似(like),则用B表中的值将A表中的值进行更新。
即:
若A.companyName like B.companyName,
则update A set A.companyName=B.companyName

#7


该如何实现呢?

#8


用substring取前几个字节,然后如果他们相等,就把两个改成一样的。

#9


看你怎么定义相识度了,建议按整个字符串长度的百分之几来判定

#10


这个不是SQL的问题,而是如何定义相似度  到底啥样的算相似

#1


引用 楼主 love417483544 的回复:
oracle 求sql,表中有个字段companyName,这个字段中的值如果有相似值则更新为相同值,比如:北京科技公司和北京科技相似,则更新为两个都为北京科技公司或者都为北京科技。求大神

怎么算相似。。前几个字相同还是什么判断条件

#2


建议楼主将表主键列和companyName都select出来,然后excel做update脚本,更新一下。

#3


如果数据量不大的话,把companyName 这个字段group 一下, 然后根据数据分析,如果类似你提的这种就直接replace(公司',''),如果有其他情况,再具体分析呗,谁能一下给出来一个sq,你都没有提供规则

#4


update  a  set companyName,=‘北京科技公司’ where companyName, like'%北京科技%'

#5


引用 4 楼 py418578291 的回复:
update  a  set companyName,=‘北京科技公司’ where companyName, like'%北京科技%'


你好,这个我是知道的,主要是两个名字都是不确定性的,并且数据量也比较多。我这样说吧,
A表有字段companyName;
B表也有字段companyName;
如果A表的companyName某一个值与B表中的companyName某一个值相似(like),则用B表中的值将A表中的值进行更新。
即:
若A.companyName like B.companyName,
则update A set A.companyName=B.companyName

#6


A表有字段companyName;
B表也有字段companyName;
如果A表的companyName某一个值与B表中的companyName某一个值相似(like),则用B表中的值将A表中的值进行更新。
即:
若A.companyName like B.companyName,
则update A set A.companyName=B.companyName

#7


该如何实现呢?

#8


用substring取前几个字节,然后如果他们相等,就把两个改成一样的。

#9


看你怎么定义相识度了,建议按整个字符串长度的百分之几来判定

#10


这个不是SQL的问题,而是如何定义相似度  到底啥样的算相似