Oracle和達夢的:相似度函數:UTL 函數:UTL_MATCH.edit_distance_similarity UTL_MATCH.edit_distance_similarity是Oracle資料庫中的一個函數,用於計算兩個字元串之間的相似度。它基於編輯距離演算法,該演算法用於衡量兩個字元串之間 ...
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
返回: