如何在SQL中查找一对数字
我对Oracle中的正则表达式有问题。我需要找到一对相同的数字,例如:如何在SQL中查找一对数字,sql,regex,oracle,Sql,Regex,Oracle,我对Oracle中的正则表达式有问题。我需要找到一对相同的数字,例如: 1111 1212 1313 1414 2020 3030 我有一个问题,如何只找到这一对,并使用正则表达式,或者像一个语句 REGEXP_LIKE(Vvalue,'[1-9][1-9][1-9][1-9]$'); 但当我尝试这个选项时,我得到了1111,但下一个是1112。如果你有一个数字开始,最简单的选项可能是使用Artimetics: where floor(mynum / 100) = mod(mynum, 1
1111
1212
1313
1414
2020
3030
我有一个问题,如何只找到这一对,并使用正则表达式,或者像一个语句
REGEXP_LIKE(Vvalue,'[1-9][1-9][1-9][1-9]$');
但当我尝试这个选项时,我得到了1111,但下一个是1112。如果你有一个数字开始,最简单的选项可能是使用Artimetics:
where floor(mynum / 100) = mod(mynum, 100)
如果您有一个数字开始,最简单的选择可能是使用Artimetics:
where floor(mynum / 100) = mod(mynum, 100)
您的正则表达式需要一个“反向引用”,以确保第一组(两)数字与第二组相同:
where regexp_like(value, '^([0-9]{2})\1$')
如果要禁止前导零,请执行以下操作:
where regexp_like(value, '^([1-9][0-9])\1$')
正则表达式的意思是:前两个数字后跟完全相同的两个数字(..)
创建一个组,并\1
引用该组。您的正则表达式需要一个“反向引用”,以确保第一组(两个)数字与第二组相同:
where regexp_like(value, '^([0-9]{2})\1$')
如果要禁止前导零,请执行以下操作:
where regexp_like(value, '^([1-9][0-9])\1$')
正则表达式的意思是:前两个数字后跟完全相同的两个数字<代码>(..)创建一个组,并且\1
引用该组