SQL Проверка проверки - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь реализовать контроль проверки данных в Sql.

Аналогично тому, если у меня есть PA12345 - Требуется вывод CCNNNNN.

В моей голове я подумайте об использовании функции замены, но не знаете, какая процедура будет оптимизирована для нее

1 Ответ

0 голосов
/ 19 февраля 2020

Если Я следовал за вами правильно, вы можете использовать regexp_replace() дважды:

select regexp_replace(regexp_replace(col, '[a-z]', 'C', 1, 0, 'i'), '\d', 'N') newcol from t

Внутренний вызов превращает все символы алфавита в 'C', тогда внешний вызов превращает цифры на 'N'.

Демонстрация на DB Fiddle :

with t as (select 'PA12345' col from dual)
select regexp_replace(regexp_replace(col, '[a-z]', 'C', 1, 0, 'i'), '\d', 'N') newcol from t
| NEWCOL  |
| :------ |
| CCNNNNN |

Обратите внимание, что это не проверка , а точнее транскодирование. Если вы хотите проверить, соответствует ли формат строки предопределенному шаблону, то вам лучше использовать regexp_like():

regexp_like(col, '[a-z]{2}\d{5}', 'i')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...