Oracle sql 检索字符串中的连续数字

0 sql oracle numbers

我们的数据库表中有很多假帐号。我想找到那些连续递增的数字。例如,123456789 和 12345,但不包括嵌入的连续数字。例如,1234598 就不是候选者。

select acct_nbr 
from account 
where acct_nbr like ('12345%', '5432%');
Run Code Online (Sandbox Code Playgroud)

我想要 12345678 但不想要 123458888,类似地想要 54321 但不想要 54329。

我应该怎样得到?有没有我可以使用的 regexp_like ?

Dmi*_*rov 5

以 1 开头的最大连续数字是 123456789 和 987654321(倒序排列)。

SQL> with t (x) as (
  2  select '12345678' from dual union all
  3  select '2345678' from dual union all
  4  select '237451678' from dual union all
  5  select '123458888' from dual union all
  6  select '54321' from dual union all
  7  select '54329' from dual
  8  )
  9  select * from t where regexp_like('123456789',x) or regexp_like('987654321',x)
 10  /

X                                                                               
---------                                                                       
12345678                                                                        
2345678                                                                         
54321   
Run Code Online (Sandbox Code Playgroud)