oracle - 在 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
请帮我。任何帮助表示赞赏。
解决方案
一种方法是删除所有非数字:
select *
from mytable
where regexp_replace(phone, '[^[:digit:]]', '') = '971234573';
推荐阅读
- python - sqlalchemy 按表名过滤列表并过滤条件
- android - 在重新排列/重新格式化(command+ALT+L)代码时在android studio中设计标签顺序更改
- firefox - Instagram oAuth:“无效的范围字段”(仅使用 Firefox 浏览器)
- ios - UIRefreshControl 仅卡在 iPhone X/iPhone XR
- python - AWS lambda 从 S3 存储桶下载时出现 SSLError
- percona - 两个数据中心之间的连接断开时继续工作
- angularjs - 如何监视也被属性引用的函数
- c# - 如何将 C# 对象序列化为特定的 JSON
- soap - MarkAsJunk 操作错误代码 9020。获取“发生内部服务器错误。操作失败。”
- android - 在 Kotlin 的 CalendarView 中取消选择选定的日期