首页 > 数据库 >Oracle和达梦:相似度函数:UTL

Oracle和达梦:相似度函数:UTL

时间:2023-10-09 17:37:07浏览次数:28  
标签:distance 函数 similarity edit UTL 相似 Oracle MATCH

Oracle和达梦的:相似度函数:UTL

函数:UTL_MATCH.edit_distance_similarity

  • UTL_MATCH.edit_distance_similarity是Oracle数据库中的一个函数,用于计算两个字符串之间的相似度。它基于编辑距离算法,该算法用于衡量两个字符串之间的相似程度。

  • 编辑距离是通过计算将一个字符串转换为另一个字符串所需的最少编辑操作次数来衡量的。这些编辑操作可以是插入、删除或替换字符。

  • 函数UTL_MATCH.edit_distance_similarity返回一个介于0和100之间的相似度分数,表示两个字符串之间的相似程度,其中0表示完全不相似100表示完全相似。

  • 通过使用UTL_MATCH.edit_distance_similarity函数,您可以比较两个字符串的相似程度,并根据需要进行进一步的处理或决策。例如,您可以在搜索引擎中使用它来提供与用户查询相关的最佳匹配结果,或者在数据清洗过程中使用它来查找相似的字符串并进行合并或去重操作。

使用

1、第一个参数是要匹配的字符串,第二个参数是要与之进行匹配的字符串

SELECT UTL_MATCH.edit_distance_similarity ('param1', 'param2') AS similarity 
  • 返回:84

☆2、第一个参数可以是查询表的列,您可以将表的列名作为第一个参数传递给该函数,以计算该列中每个值与指定字符串之间的相似度。

SELECT UTL_MATCH.edit_distance_similarity (列名, '6') AS similarity
SELECT UTL_MATCH.edit_distance_similarity ("列名", '6') AS similarity

实践

  • 查询表TABLE_1的C2_VARCHAR2字段的值和6匹配的相似度,并且取相似度大于2的值
SELECT
  *
FROM
  (
  SELECT
    UTL_MATCH.edit_distance_similarity (C2_VARCHAR2, '6') AS similarity
  FROM
    TABLE_1
  ORDER BY similarity DESC) AS a
WHERE
  similarity >= 2

返回:
image

标签:distance,函数,similarity,edit,UTL,相似,Oracle,MATCH
From: https://www.cnblogs.com/kakarotto-chen/p/17752256.html

相关文章

  • Clickhouse时间日期函数一文详解+代码展示
    转:https://blog.csdn.net/master_hunter/article/details/125762575一、时间函数和MySQL时间函数有些不同,但是时间函数的功能是一样的,这里把常用的时间函数给出,效果以实际代码运行结果为准: 1.取当前时间SELECT now()AStimeSELECT today()AStime获取当前时间戳SELECT ......
  • Go函数全景:从基础到高阶的深度探索
    在本篇文章中,我们深入探索了Go语言中的函数特性。从基础的函数定义到特殊函数类型,再到高阶函数的使用和函数调用的优化,每一个部分都揭示了Go的设计哲学和其对编程效率的追求。通过详细的代码示例和专业解析,读者不仅可以掌握函数的核心概念,还能了解如何在实践中有效利用这些特性来......
  • oracle cdc 命令
    1、查看当前的数据库是否开启了cdc模式,就是日志归档模式v$database在oracle中是一个视图,用于提供有关当前数据库实例的信息。它包含了一些列,其中之一是log_modelog_mode列用于显示数据库实例的归档模式(ArchiveMode)的状态。ARCHIVELOG说明开启了归档模式(即可以执行cdc相关操......
  • Oracle中的行列转换-行转列
     --建立一张表createtablechengji(idNUMBER,nameVARCHAR2(20),courseVARCHAR2(20),scoreNUMBER);--导入数据insertintochengji(id,name,course,score)values(1,'张三','语文',67);insertintochengji(id,name,course,score)values(1,'张......
  • 【转】内核的时间函数
    因为需要在kernelteedriver中做个获取时间的测试,才有了这次搜索。这篇比较符合需求:https://www.dingmos.com/index.php/archives/38/,感谢这位博主!问题分析中看到的一些点:auth_token_table.h中获取时间:explicitAuthTokenTable(size_tmax_entries=32,time_t(*clock......
  • 用bat脚本启动和停止系统服务,如oracle等
    启动脚本启动oracle.bat::取得管理员权限:Main@echooffcd/d"%~dp0"cacls.exe"%SystemDrive%\SystemVolumeInformation">nul2>nulif%errorlevel%==0gotoAdminifexist"%temp%\getadmin.vbs"del/f/q"%temp%\getadmin.v......
  • entity-framework 'scaffold-dbcontext' 未被识别为 cmdlet、函数、脚本文件或可操
    //出现此错scaffold-dbcontext:Theterm'scaffold-dbcontext'isnotrecognizedasthenameofacmdlet,function,scriptfile,oroperableprogram.Checkthespellingofthename,orifapathwasincluded,verifythatthepathiscorrectandtry......
  • 函数调用
    P7077[CSP-S2020]函数调用我们考虑如果没有第三种函数,如何解决这个问题。发现,对于每个1(1类),我们考虑在它之后执行了多少个2,然后累乘,就是这个增加操作实际的贡献。我们只需要倒序,维护一个后缀积即可。我们的核心思想就是计算每个1的贡献是几倍。考虑有3会怎么样。还是延续上面......
  • js函数,js对象
    1定义一个函数21.functionfuctionName(参数1,参数2){3//要执行的代码4return要返回的结果5}6782.varfunctionName=function(a,b)91011ES6箭头函数:(...)=>{...}12arr.forEach((e)=>{13console.log(e);14})基础对象模......
  • 有效解决VC++6.0一个工程不能有多个main函数的解决方案
    对于初学者来说,需要做很多练习,就需要创建多个main()函数,但C语言只能有一个main()函数,那么通常的做法就是:【方法一】:讲其他文件中的main()函数注释掉,但该方法比较费时费力,不推荐【方法二】:在VC++6.0中,在工程左边fileview里工程下的sourcefiles中,选中前一个带main函数的文件, ......