Чтобы удалить определенную часть строки, я бы предложил использовать regexp_replace()
. Чтобы сопоставить строку после применения regexp_replace()
, вы можете использовать оператор ~
в предложении WHERE
.
Оператор ~
является оператором сопоставления регулярных выражений POSIX. Документация PostgreSQL здесь .
Например:
SELECT *
FROM
(
SELECT REGEXP_REPLACE(string, '-G56', '') str
FROM test
) t
WHERE t.str ~ 'BCD-XYZE12'
;
SQLFiddle , чтобы увидеть некоторые рабочие примеры.