Re: removing a portion of text

From: Sam Mason <sam(at)samason(dot)me(dot)uk>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: removing a portion of text
Date: 2008-10-20 11:40:12
Message-ID: 20081020114012.GG2459@frubble.xen.chris-lamb.co.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Mon, Oct 20, 2008 at 04:21:31AM -0700, pere roca wrote:
> I have a column with full of data like ATB-OO NCK-TT .... how can I
> easily remove the "-" ?

If you just want to remove all the dashes then I'd use a regex;
something like:

UPDATE table SET data = regexp_replace(data, '-', '', 'g');

This says, modify the table replacing every instance (the 'g' option) of
a dash with an empty string in the "data" column.

> it seems that the "-" is allways the fourth letter.

another option in that case would be to use a couple of calls to
substring() instead of the regex call:

substring(data FROM 1 FOR 3) || substring(data FROM 4);

The manual page[1] contains more complete descriptions of the functions
that operate on text. If you haven't come across regexs before then I'd
recommend playing around with them, they're very useful and appear in
lots of places--most text editors will allow you to search and replace
using them, doing much more interesting things that I did above.

Sam

[1] http://www.postgresql.org/docs/current/static/functions-string.html

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Andrus 2008-10-20 12:26:04 Re: IS NULL seems to return false, even when parameter is NULL
Previous Message Richard Huxton 2008-10-20 11:34:41 Re: IS NULL seems to return false, even when parameter is NULL