Проверить, что в одном столбце есть только числа с использованием регулярного выражения - PullRequest
0 голосов
/ 25 апреля 2019

Мне нужно убедиться, что в одном столбце есть цифры (только целые числа) в оракуле.Если да, тогда установите флаг как 1, иначе 0. Я пытаюсь использовать ниже reg_exp (но он устанавливает флаг в 1 даже для дефиса):

CASE WHEN REGEXP_LIKE(Column_name,'\d\) THEN 1 ELSE 0 END

Примеры: 12345 должен (это работает, и код вышеустановка флага в 1) -1234 должен установить флаг в 0 (выше код устанавливает его в 1) abcd должен установить флаг в 0 (выше код работает правильно в этом случае) 123.23 должен установить флаг в 0

Ответы [ 2 ]

3 голосов
/ 25 апреля 2019

Если вы хотите проверить, содержат ли они только цифры или нет, попробуйте

CASE WHEN  REGEXP_LIKE(Column_name, '^[[:digit:]]+$') THEN 1 ELSE 0 END ;
1 голос
/ 26 апреля 2019

Вы можете использовать TRANSLATE функцию

SELECT case when TRANSLATE(Column_name, 'X0123456789', 'X') is null
            then 1
            else 0
       end
FROM t;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...