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
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 |