Re: concat strings but spaces

From: Ron St-Pierre <rstpierre(at)syscor(dot)com>
To: Matthias Teege <matthias(at)mteege(dot)de>, pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: concat strings but spaces
Date: 2004-04-06 17:16:18
Message-ID: 4072E5E2.104@syscor.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Matthias Teege wrote:

>Moin,
>
>I try to concat values from three fields in a function like this:
>
>create or replace function
> fconcat_name(varchar, varchar, varchar) returns varchar as '
> declare
> ttl alias for $1;
> vnm alias for $2;
> nme alias for $3;
> begin
> return ttl || '' '' || vnm || '' '' || nme;
> end;
>' language plpgsql;
>
>That works but if one of the fields is empty there are to much
>spaces in the result. Is there any alternative to a monster
>if-then construct?
>
>Many thanks
>Matthias
>
>
>
>---------------------------(end of broadcast)---------------------------
>TIP 7: don't forget to increase your free space map settings
>
>
>
>
There are a few ways to do this, one is by using the COALESCE function
which returns the first of its arguments that is not null.
eg
select coalesce('123' || ' ' || 456, null);
coalesce
----------
123 456
(1 row)

You could have a few COALESCE calls, or use a CASE expression, or use IF
statements.

Ron

In response to

Browse pgsql-general by date

  From Date Subject
Next Message scott.marlowe 2004-04-06 17:17:03 Re: Crash in postgres/linux on verly large database
Previous Message Richard Huxton 2004-04-06 17:09:28 Re: Error on deleting