Я пытаюсь найти первую позицию регулярного выражения в строке (точный идентификатор позиции), чтобы иметь возможность удалить его, но я не могу найти такое решение в PostgreSQL.
Мой запрос съеденразделители и объединяет строки и пытается вырезать только значения между разделителями. Например, когда в столбце есть строковое значение, например:
57080*570801*157080*5708011
670811*67081*670810*670815
, я пытался использовать:
UPDATE tab
set str = (REGEXP_REPLACE(str, '^57080*', '')
WHERE myColumn=159880;
или
UPDATE tab
set str = (REGEXP_REPLACE(str, '*57080*', '')
WHERE myColumn=159880;
или
UPDATE tab
set str = (REGEXP_REPLACE(str, '*57080$', '')
WHERE myColumn=159880;
Однако это мне не поможет, потому что после использования (REGEXP_REPLACE (str, '* 57080 *', '')
у меня застрял идентификатор (например, 57080570801
). Мне нужно как-то найти свою позицию регулярного выражения, чтобы иметь возможность вырезать только идентификатор. После этого я всегда могу использовать REPLACE (string , '**', '*')
, который будет вырезать двойные символы, или
SET str = CASE
WHEN str LIKE '*%' THEN RIGHT (str, LENGTH (str) -1)
WHEN str LIKE '% *' THEN LEFT (str, LENGTH (str) -1)
будет вырезать начальный / конечный символы (*
). Кто-нибудь знает, как легко найти позиции такого регулярного выражения.