Исключить повторение

Есть 2 записи:

fdag.alt.alt

gyajj.alt

Необходимо развести их через регулярное выражение (вхождение буквы a + окончание). Но они обе попадают под первый шаблон - заканчиваются на .alt. Нужно, чтобы, если заканчивается просто на .alt - 1 вариант, а если именно на .alt.alt - второй. Возможно так сделать?

with ds as
(
    select 'fdag.alt.alt' v
    union 
    select 'gyajj.alt'
)
select
    ds.v ~* '.*a.*\.alt$' v1,
    ds.v ~* '.*a.*\.alt.alt$' v2,
    ds.* 
from ds;

Ответы (1 шт):

Автор решения: Will Ronson

Разобрался с отрицаниями. Если есть еще варианты, буду рад изучить их. Вот результат:

with ds as
(
    select 'fdag.alt.alt' v
    union 
    select 'gyajj.alt'
)
select
    ds.v ~* '.*a.*[^\.alt]\.alt$' v1,
    ds.v ~* '.*a.*\.alt\.alt$' v2,
    ds.* 
from ds;
→ Ссылка