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

时间:2014-03-17 19:56:28

标签: sql oracle numbers

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

select acct_nbr 
from account 
where acct_nbr like ('12345%', '5432%');

我想要12345678而不是123458888,同样54321但不是54329.

我该怎么办?有没有我可以使用的regexp_like?

1 个答案:

答案 0 :(得分:4)

以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