Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SQL中查找一对数字_Sql_Regex_Oracle - Fatal编程技术网

如何在SQL中查找一对数字

如何在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

我对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, 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
引用该组