Извлечение данных в скобках с помощью Amazon-RedShift - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть следующие символы в таблице:

LEASE THIRD-CCP-MANAGER (AAAA)
THE MANAGEMENT OF A THIRD PARTY (BBBB / AAAA)

Когда я извлекаю информацию:

AAAA
BBBB/AAAA

То есть я должен искать шаблон и извлекать то, что внутрискобка.

Я пытаюсь использовать функцию REGEXP_SUBSTR.

В амазонском красном смещении как извлечь символы в скобках?

спасибо

Ответы [ 3 ]

0 голосов
/ 28 февраля 2019

Возможно, вы боретесь с (), означающим что-то в регулярных выражениях (поиск «обратные ссылки»)

Чтобы указать регулярному выражению, что вы просто имеете в виду символы ( и ) без их специального значения«Убежать» с помощью \

regexp_substr(yourtable.yourcolumn,'\(.*\)')
0 голосов
/ 01 марта 2019

Ого, это было сложно!

Вот синтаксис для использования:

SELECT REGEXP_SUBSTR('One (Two) Three', '[(](.*)[)]', 1, 1, 'e')

Это вернет: Two

Похоже, что экранирование скобок с\( не работает, но помещение их в [(] работает.'e' в конце «Извлечь подстроку с помощью подвыражения».

0 голосов
/ 28 февраля 2019

используйте position для нахождения индекса круглой скобки (, а затем substring

select 
substring(position('(' in 'LEASE THIRD-CCP-MANAGER (AAAA)'),position(')' in 'LEASE THIRD-CCP-MANAGER (AAAA)'))

или вы можете использовать split_part

split_part('LEASE THIRD-CCP-MANAGER (AAAA)','(',2)
...