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?
Maybe like this:
create or replace function fconcat_name(varchar, varchar, varchar) returns varchar as ' select replace($1 || '' '' || $2 || '' '' || $3, '' '', '' '') ' language sql;
regression=# select fconcat_name('John','','Doe'); fconcat_name -------------- John Doe (1 row)
HTH,
Joe
---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match