我對這個概念或正則運算式非常陌生,并且正在尋找一種通配符搜索解決方案,該解決方案允許在 Snowflake 中字串的 2 個或更少字符錯誤/缺失/空白。例如,如果我有一個包含籃球運動員姓名的表格列,例如“ lebron james ”、“carmelo anthony”、“kobe bryant”,下面是我希望從另一個表格匹配的結果(消費者搜索查詢)對于“勒布朗詹姆斯”:
'lebrn james'(缺少'o')
'lebronjames'(在 fn 和 ln 之間缺少一個空格)
'lebrn jme'(缺少'o'和'a')
“勒布朗詹姆斯”(完全匹配)
有人會這么好心提供一些指導嗎?
uj5u.com熱心網友回復:
EDITDISTANCE是您所要求的:
with input(str) as (
select * from values
('lebrn james'), ('lebronjames'), ('lebrn jme')
), targets(str) as (
select * from values
('lebron james'), ('carmelo anthony'), ('kobe bryant')
)
select i.str, t.str, editdistance(i.str, t.str)
from input i
cross join targets t;
給出:
| STR | STR_2 | 編輯距離(I.STR,T.STR) |
|---|---|---|
| 勒布朗詹姆斯 | 勒布朗·詹姆斯 | 1 |
| 勒布朗詹姆斯 | 卡梅羅·安東尼 | 14 |
| 勒布朗詹姆斯 | 科比·布萊恩特 | 10 |
| 勒布朗·詹姆斯 | 勒布朗·詹姆斯 | 1 |
| 勒布朗·詹姆斯 | 卡梅羅·安東尼 | 13 |
| 勒布朗·詹姆斯 | 科比·布萊恩特 | 10 |
| 勒布朗 | 勒布朗·詹姆斯 | 3 |
| 勒布朗 | 卡梅羅·安東尼 | 13 |
| 勒布朗 | 科比·布萊恩特 | 9 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/460138.html
