PostgreSQL:在函数中为null变量赋值

时间:2014-07-09 09:10:01

标签: postgresql

这里我试图为默认值为null的变量赋值。例如,如下例所示。

示例

create or replace function fun(va varchar)
returns void as
$$
declare
       var1 varchar := null; 
begin
       var1 := var1 || va;

       raise notice '%',var1;
end;
$$
language plpgsql;

调用函数

select fun('abc');

输出

NOTICE:  <NULL>

注意:我无法将output作为abc

1 个答案:

答案 0 :(得分:3)

null的任何串联都会产生null,因此'abc'||nullnull

如果您希望abc作为输出,则必须将var1初始化为空字符串:

var1 varchar := ''; 

另一种可能的解决方案是使用忽略空值的concat(),因此concat('abc',null')会返回'abc'