oracle 筛选SQL中的重复两位数模式

2wnc66cl  于 2022-11-03  发布在  Oracle
关注(0)|答案(1)|浏览(185)

我想过滤掉一些重复两位数超过3次的字符串数字。例如,如果它包含“121212”,它将不会被过滤,但如果它包含“12121212”,它将被过滤。我试图找到一种方法来解决它使用正则表达式,但无法找到它。

pn9klfpd

pn9klfpd1#

在Oracle中,使用正则表达式来比对两个数字,然后使用反向指涉来检查数字是否重复3次或以上。然后,若要排除这些数据列,请将NOT加入筛选:

SELECT *
FROM   table_name
WHERE  NOT REGEXP_LIKE(value, '(\d\d)\1{3,}')

其中,对于示例数据:

CREATE TABLE table_name (value) AS
SELECT '121212' FROM DUAL UNION ALL
SELECT '12121212'  FROM DUAL UNION ALL
SELECT '123121212'  FROM DUAL;

输出:
| 价值|
| - -|
| 小行星121212|
| 小行星12312|
fiddle

相关问题