oracle - 选择查询oracle中具有特定长度和字符的数据
问题描述
我的表在我的 oracle 数据库中看起来像这样;
ID | NI | NT | MB | ETC
-------------------------------------------
1 |1234567 | | | comments //valid
2 |9654875 | | | jhdsd //valid
3 |43gf543 | | | dd //in-valid
4 |123 | | | dfds //in-valid
5 |12654332 | | | dffd //in-valid
6 | |542 | | comments //valid
7 | |362 | | jhdsd //valid
8 | |9631 | | dd //invlaid
9 | |r45 | | dfds //in-valid
10 | |56 | | dffd // in-valid
11 | | |03121234567 | comments //valid
12 | | |03874514414 | jhdsd //valid
13 | | |05764544444 | dd //in-valid as not starts with 03
14 | | |30010101019 | dfds //in-valid
15 | | |038f5678543 | dffd //in-valid
我喜欢使用选择查询仅选择有效记录
在哪里
- NI 长度应固定为 7 和所有,以任何数字开头
- NT 长度应固定为 3 和所有,以任何数字开头
- 数字 MB 长度应固定为 11,以 03 和所有数字开头。
结果应该是这样的;
1 |1234567 | | | comments
2 |9654875 | | | jhdsd
3 | |542 | | comments
4 | |362 | | jhdsd
5 | | |03121234567 | comments
6 | | |03874514414 | jhdsd
解决方案
尝试这个:
NI 长度应固定为 7 和所有,以任何数字开头
REGEXP_LIKE(NI, '^\d{7}$')
NT 长度应固定为 3 和所有,以任何数字开头
REGEXP_LIKE(NT, '^\d{3}$')
数字 MB 长度应固定为 11,以 03 和所有数字开头。
REGEXP_LIKE(MB, '^03\d{9}$')
推荐阅读
- image - Google Drive encrypt image with Apps Script? (cCryptoGS)
- flutter - 如何在 Flutter 中对齐单个小部件?
- pine-script - 无法将音量条固定到图表底部
- runtime-error - 关于 Magento 2 管理员网址的问题
- reactjs - react-router-dom 无法在项目文件夹中解析
- h.264 - PES 标头中的重复 PTS/DTS
- alexa - Alexa Skill 中的 AMAZON.TIME 问题
- c# - 为什么我不能加载 System.Security.Cryptography.ProtectedData 当它与可执行文件位于同一目录时
- python - Selenium: Find an element stored in a container
- python - pandas groupby 计数和占组总数的比例