程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何比较相似数据大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何比较相似数据?

开发过程中遇到如何比较相似数据的问题如何解决?下面主要结合日常开发的经验,给出你关于如何比较相似数据的解决方法建议,希望对你解决如何比较相似数据有所启发或帮助;

我想将数据插入到 PL-sql。

但我需要检查表是否有相似的数据。

如果表检查有类似信息,则无法添加

例如:

插入数据:ABCD 或 ABCE

表: enter image description here

标签设备有ABC,所以不能添加。

我该如何编写这个程序?

解决方法

你可以在PLSQL中使用instr

例:

declare 
x number;
begin
for i in (SELEct disTinct value from tablE)
loop

SELEct count(1) into x 
from table2
where instr(Device,i.value) > 0;

if (x = 0) then
   insert into table2(DevicE) values(i.value);
end if;

commit;
end loop;
end;
,

相似还是相同的数据?这有很大的不同。因为如果您不想在您的列中使用相同的数据,您可以使该列唯一。但是如果你想检查类似的数据,呃,这有点难以实现,难以理解,而且这会彻底扼杀你的表现......但如果你仍然想走那条路,你可以查看{{3 }}

,

Isi 已经提到了算法;这是您可能正在寻找的示例。

当前表格内容:

SQL> SELEct * FROM test;

COL
-----
ABC
ABD
ABR

以下是当前值与您要插入的某些字符串(ABCD、FDGH)的相似

SQL> SELEct t.col,2         utl_match.jaro_winkler_similarity('ABCD',t.col) sim_abcd,3         utl_match.jaro_winkler_similarity('FDGH',t.col) sim_fdgh
  4  from test t;

COL     SIM_ABCD   SIM_FDGH
----- ---------- ----------
ABC           94          0
ABD           93         52
ABR           77          0

现在,由您决定哪个值将代表限制,并决定是否在该表中插入一个值。我们假设它是 90%。那么你会

SQL> insert into test (col)
  2    SELEct '&&par_insert'
  3    from dual
  4    where 90 > (SELEct max(utl_match.jaro_winkler_similarity('&&par_insert',a.col))
  5                from test a
  6               );
Enter value for par_insert: ABCD

0 rows created.

SQL>

对; ABCD 与任何当前值相似超过 90% 且未插入。

FDGH 怎么样?

SQL> undefine par_insert
SQL> /
Enter value for par_insert: FDGH

1 row created.

SQL> SELEct * FROM test;

COL
-----
ABC
ABD
ABR
FDGH

SQL>

是的,它被插入了。

大佬总结

以上是大佬教程为你收集整理的如何比较相似数据全部内容,希望文章能够帮你解决如何比较相似数据所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。