Sử dụng một số các [oracle similiarity nội] tìm thấy trong UTL_Match (https://docs.oracle.com/database/121/ARPLS/u_match.htm#ARPLS71219) khớp với nhau ...
Logic này phù hợp hơn với tên hoặc mô tả tương tự '' và cách phát âm hoặc typo có thể gây ra anh ghi lại không khớp.
Bằng cách điều chỉnh .5 bên dưới, bạn có thể thấy cách% giúp bạn gần gũi hơn và gần hơn với các kết quả phù hợp hoàn hảo.
with cte as (
select 'Content of values' val from dual union all
select 'Values identity' val from dual union all
select 'triple combo' from dual union all
select 'my combo'from dual union all
select 'sub-zero combo'from dual)
select a.*, b.*, utl_match.edit_distance_similarity(a.val, b.val) c, UTL_MATCH.JARO_WINKLER(a.val,b.val) JW
from cte a
cross join cte b
where UTL_MATCH.JARO_WINKLER(a.val,b.val) > .5
order by utl_match.edit_distance_similarity(a.val, b.val) desc
và ảnh chụp màn hình truy vấn/đầu ra.
Hoặc chúng ta có thể sử dụng một bên tham gia và> nếu chúng ta chỉ muốn compairisons một cách ...
select a.*, b.*, utl_match.edit_distance_similarity(a.val, b.val) c, UTL_MATCH.JARO_WINKLER(a.val,b.val) JW
from cte a
inner join cte b
on A.Val > B.Val
where utl_match.jaro_winkler(a.val,b.val) > .5
order by utl_match.edit_distance_similarity(a.val, b.val) desc
này sẽ trả về 3 hồ sơ mong muốn.
But this does not explicitly check each any word matches.
là yêu cầu cơ sở của bạn. Tôi chỉ muốn bạn biết về các lựa chọn thay thế.
RDBMS là gì? Bạn làm một số mẫu phù hợp ở đây mà một số RDBMS đã xây dựng trong các chức năng mà có thể giúp đỡ. – xQbert
@xQbert Tôi đang sử dụng Oracle 11g. – Mike
Xem các hàm [UTL_Match] (https://docs.oracle.com/database/121/ARPLS/u_match.htm#ARPLS352). Có một số chức năng phù hợp phong nha ở đó. – xQbert