提问人:Lital 提问时间:10/4/2023 最后编辑:LittlefootLital 更新时间:10/4/2023 访问量:40
如何查找包含部分相似字符串的 2 列
How to find 2 columns contain partial similar string
问:
我有 2 列(Location 和 Name),我需要找出两者是否有相似的字符串。 我正在尝试获取一个新列,如果有匹配项,则返回 1,如果根本没有匹配项,则返回 0。 下面是我的数据和我需要的列的示例:
| Location | Name | Result |
|:-----------: |:------------:|:-------:|
| Sherman Oaks | Oaks | 1 |
|Beverly drive | Sherman way | 0 |
|Hollywood Blvd| Hollywood | 1 |
| 3rd Street | Main | 0 |
| Ventura | Park Ave | 0 |
| Palm Springs | Null | 0 |
答:
0赞
Littlefoot
10/4/2023
#1
对于您发布的示例数据和所需的结果,这可能是一个选项:检查是否存在,反之亦然。如果是这样,result = 。location
name
1
但请注意,可能存在误报甚至漏报;为了避免它们,请尝试提出导致预期结果的精确规则。
SQL> select location, name,
2 case when instr(location, name) > 0 or
3 instr(name, location) > 0
4 then 1
5 else 0
6 end result
7 from test;
LOCATION NAME RESULT
-------------------- ----------- ----------
Sherman Oaks Oaks 1
Beverly drive Sherman way 0
Hollywood Blvd Hollywood 1
3rd Street Main 0
Ventura Park Ave 0
Palm Springs 0
Sherman Oaksland Oaks 1 -> false positive? (substring match)
Sherman Way way 0 -> false negative? (case sensitivity)
8 rows selected.
SQL>
上一个:在 Oracle 19c 中从 LONG 中提取字符
下一个:表列值的字符串修改
评论