2014-07-09 90 views
0

這裏我試圖給默認值爲null的變量賦值。例如,如下例所示。PostgreSQL:賦值給函數中的空變量

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

回答

3

null的任何級聯產生null,所以'abc'||nullnull

如果你想abc,你必須初始化var1爲空字符串輸出:

var1 varchar := ''; 

另一種可能的解決方案是使用concat()而忽略空值,所以concat('abc',null')回報'abc'

+0

太好了!非常感謝。 – Meem