Подстрока PostgreSQL получает строку между скобками

у меня есть строка, скажем:

Product Description [White]

Я хочу извлечь что-нибудь внутри скобок (в этом случае White) из этой строки, используя функцию подстроки PostgreSQL. Я могу заставить это работать, используя regexp_matches, но это возвращает массив, который я не хочу, если у меня нет другого выбора.

Я пробовал:

  • substring('string' from '[(.)]') > > > NULL
  • substring('string' from '[(.)]') > > > NULL
  • substring('string' from '[(.)]') >>> Значение null

но это работает:

  • substring('string' from 'W(.)i]') > > > h

что я делаю не так?

2 ответов


(.) соответствует только одному символу, но вы хотите, чтобы соответствовать нескольким символам там.

вам нужно (.+)

substring('Product Description [White]' from '\[(.+)\]')

Я думаю, вы хотите обновить какое-то значение, как класс оплаты от шкалы оплаты или любой вещи просто использовать следующий запрос

обновление master.тарифная сетка Установите grade_pay= случай, когда описание, Например " % ( % )%", затем(выберите подстроку (описание из' ((.+ )) ')) другое описание End:: numeric