我有一个字符串,说:
Product Description [White]
我想使用PostgreSQL子串函数从该字符串中提取括号内的任何内容(在本例中为White
)。我可以使用regexp_matches
来实现此功能,但这会返回一个我不想要的数组,除非我别无选择。
我试过了:
substring('string' from '[(.)]')
>>> NULL substring('string' from '\[(.)\]')
>>> NULL substring('string' from '\\[(.)\\]')
>>> NULL 但这有效:
substring('string' from 'W(.)i]')
>>> h 我做错了什么?
答案 0 :(得分:12)
(.)
仅匹配单个字符,但您希望匹配其中的多个字符。
所以你需要(.+)
substring('Product Description [White]' from '\[(.+)\]')
答案 1 :(得分:-1)
我认为您想要更新某些价值,例如来自工资等级的年级薪酬,或者只是使用以下查询
更新master.pay_scale SET grade_pay =案例描述LIKE'%(%)%'然后(选择子字符串(描述来自'((。+))'))else description End :: numeric