РЕДАКТИРОВАТЬ
Мне нужно идентифицировать все числа по крайней мере 6 цифр и максимум 25 цифр, имеющие только 1-3 цифры, которые отличаются от 0.
Примеры: 000123, 0103040000, 10320000, 70000000, 12000009000
Я пытался что-то вроде этого:
regexp_like(number, '[1-9]\d{1,3}') AND regexp_like(number,'(0){5,24}')
(можно использовать более одного регулярного выражения)
Ноэто также соответствует числам, таким как:
0046700000031,00394000007 - Это не должно совпадать, потому что они имеют 4 цифры, отличные от 0, должны совпадать числа с минимум 1 цифрой, отличной от 0, и максимум 3 цифрами, отличной от 0
Я использую Oracle 12C.
РЕШЕНИЕ
Вот альтернатива, которую я нашел, которая, кажется, работает, но я полагаю, только в Oracle.
SELECT NUMBER
FROM TABLE t
WHERE LENGTH(NUMBER) > 5 HAVING(regexp_count(NUMBER, '0') > 2
AND regexp_count(NUMBER, '[1-9]') BETWEEN 1 AND 3)
GROUP BY NUMBER
Спасибо