Предполагая, что описание вашей проблемы правильное, ваши входные данные всегда представляют собой строки 10-ди git, и вы должны возвращать код E
тогда и только тогда, когда четыре цифры в середине равны 7890
. Правильно? Если это так, самое простое решение - использовать условие LIKE. Обратите внимание, что number
является зарезервированным ключевым словом, поэтому его нельзя использовать в качестве имени столбца (надеюсь, имя вашего столбца на самом деле не number
, не так ли?)
Строка в LIKE
условие трудно читать; он состоит из трех символов подчеркивания, затем 7890, а затем еще трех символов подчеркивания. Подчеркивание обозначает ровно один символ ( любой символ).
with
simulated_data (num) as (
select '1234567890' from dual union all
select '3337890456' from dual union all
select '7897890455' from dual union all
select '9998887774' from dual
)
select num, case when num like '___7890___' then 'E' end as code
from simulated_data
order by num
;
NUM CODE
---------- ----
1234567890
3337890456 E
7897890455 E
9998887774