【发布时间】:2020-08-19 07:17:09
【问题描述】:
我有下表。我怎样才能在“想要”中获得结果?我会欣赏想法,我愿意接受任何模糊匹配算法
有
ID Name
1 Davi
2 David
3 DAVID
4 Micheal
5 Michael
6 Oracle
7 Tepper
想要
ID Name mtch_ind
1 Davi 1
2 David 1
3 DAVID 1
4 Micheal 2
5 Michael 2
6 Oracle 3
7 Tepper 4
TABLE DDL 和记录插入
CREATE TABLE HAVE (
ID INTEGER,
Name VARCHAR(10)
);
INSERT INTO data VALUES ('1', 'Davi');
INSERT INTO data VALUES ('2', 'David');
INSERT INTO data VALUES ('3', 'DAVID');
INSERT INTO data VALUES ('4', 'Micheal');
INSERT INTO data VALUES ('5', 'Michael');
INSERT INTO data VALUES ('6', 'Oracle');
INSERT INTO data VALUES ('7', 'Tepper');
【问题讨论】:
-
你能解释一下为什么 Davi 和 David 的排名一样吗?
-
ID 1,2 和 3 重复“Davi”。当字符串中的任何模式与其他模式匹配时,它们的排名相同。
-
检查 SOUNDEX(我没有办法检查 PL/SQL)
-
.>> 当字符串中的任何模式与其他模式匹配时,它们的排名相同。 – VN'sCorner 这意味着如果有 D、Da、Dav、Db、Dc、Dab ......所有这些都匹配?
-
@Srinika - 我猜一个模式应该至少有 2 个字母。等待请求者提供指示,因为当前信息有很多歧义。 SOUNDEX 看起来很合理,但需要 PL/SQL。
标签: sql oracle fuzzy-comparison