Oracle, показывать только те строки, в которых нет числовых значений - PullRequest
0 голосов
/ 20 марта 2019

У меня есть столбец X со значениями, такими как:

619 19th St S, Oslo, AL 3522310, Spain
4538 S Harvard Ave, Roma, OK 74135, Germany
Golaa, CA , USA
Piri, SO, Italy

И я хотел бы отфильтровать только те, в которых я не вижу числа в столбце, поэтому результат запроса должен быть:

Golaa, CA , USA
Piri, SO, Italy

Ответы [ 3 ]

2 голосов
/ 20 марта 2019

Я бы использовал регулярное выражение, но я думаю, что это проще:

SELECT *
FROM yourTable
WHERE NOT REGEXP_LIKE(x, '[0-9]');

Вы также можете сделать это без регулярных выражений:

WHERE x = TRANSLATE(x, 'a0123456789', 'a')
1 голос
/ 20 марта 2019

Вы можете использовать регулярные выражения для сопоставления с образцом в Oracle.

SELECT
  *
FROM
  yourTable
WHERE
  NOT REGEXP_LIKE(x, '[0-9]+')

Это исключит все строки, имеющие одну или несколько числовых цифр в столбце x.

0 голосов
/ 20 марта 2019
with s as (
select '619 19th St S, Oslo, AL 3522310, Spain' str from dual union all
select '4538 S Harvard Ave, Roma, OK 74135, Germany' from dual union all
select 'Golaa, CA , USA' from dual union all
select 'Piri, SO, Italy' from dual)
select *
from s
where str = translate(str, 'z1234567890', 'z');

STR
------------------------------
Golaa, CA , USA
Piri, SO, Italy
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...