On 9 Sep 2013, at 21:03, Alvaro Herrera <alvhe...@2ndquadrant.com> wrote:
> select string_agg(case when words like '*%*' then upper(btrim(words, '*')) > else words end, ' ') > from regexp_split_to_table('The *quick* *brown* fox jumped over the *lazy* > dog', ' ') as words; > > string_agg > ---------------------------------------------- > The QUICK BROWN fox jumped over the LAZY dog That's quite elegant. In the end I exported and used PERL, as some of my 'words' had spaces (they were ingredients like monosodium glutamate), but you could probably do a more complex regex in regexp_split_to_table to cope with that, or use pl/perl as previously suggested. Thanks Oliver www.agilebase.co.uk