Я бы сказал, что у вас есть проблема с вашим запросом или моделью данных, если вы выполняете арифметику со строковыми значениями. Это звучит как проблема.
Но чтобы ответить на ваш вопрос. Это условное выражение:
WHERE REGEXP_LIKE(Column_name, '\d')
возвращает true, если в столбце есть хотя бы один символ цифры.
WHERE NOT REGEXP_LIKE(Column_name, '\d')
возвращает true, если в столбце нет цифр.
Я думаю, что логика, которую вы хотите обнаружить, на самом деле:
WHERE REGEXP_LIKE(Column_name, '^\d+$')
Я бы рекомендовал использовать эту логику отдельно для каждого столбца:
WHERE REGEXP_LIKE(Col1, '^\d+$') AND
REGEXP_LIKE(Col2, '^\d+$') AND
. . .
Это работает для цифр , но не обрабатывает отрицательные знаки, десятичные точки или NULL
значения.
Для конкретной цели цифр вы можете объединить столбцы:
WHERE REGEXP_LIKE(Col1 || Col2 || . . ., '^\d+$')