我想对Oracle表中包含公司名称的列进行查找。
如果我要求" Jennifer的干洗店"我不仅希望返回完全匹配,还要返回"关闭匹配"喜欢(但不限于):
詹妮弗的管道清洁工 杰西卡的干洗店 詹妮弗管道清理 Jennifer管道清洁有没有办法实现这个目标?
答案 0 :(得分:0)
您可以在每个单词上使用LIKE运算符,并将其与UTL_MATCH.EDIT_DISTANCE结合起来,以便通过贴近来对结果进行排序:
SELECT
company_name,
utl_match.edit_distance(lower(company_name), 'jennifers dry cleaners') edit_distance
FROM company_names
WHERE
lower(company_name) LIKE '%jennifer%' OR
lower(company_name) LIKE '%dry%' OR
lower(company_name) LIKE '%cleaner'
ORDER BY edit_distance asc;