首页 > 解决方案 > 在 oracle sql 中使用正则表达式从表列中搜索数据

问题描述

我需要用人的电话号码从表中搜索数据。但是电话号码以不同的形式保存。但它的长度等于 9 并且仅由数字组成。当我使用静态形式搜索时如何找到数字,998732387 结果应该是这样。

2 | 99 873 23 87 | Kike

当我输入时971234573,结果应如下所示:

3 | 97 123-45-73 | Cris

mytable

-----------------------------------------
id        |   phone        | name
----------------------------------------
1         |  991234567     | Michael
2         |  99 873 23 87  | Kike
3         |  97 123-45-73  | Cris

请帮我。任何帮助表示赞赏。

标签: oracle

解决方案


一种方法是删除所有非数字:

select *
from mytable
where regexp_replace(phone, '[^[:digit:]]', '') = '971234573';

推荐阅读