新しい関数を定義する
CREATE FUNCTION関数を使用する。
- 2つの値を引数にとり足し算を返す関数を定義した。
-
RETURNS NULL ON NULL INPUTに関係なく1つでもnullを受け取れば仕様上nullを返す。
DROP FUNCTION IF EXISTS add_sample_1107(integer, integer);
CREATE FUNCTION add_sample_1107(integer, integer) RETURNS integer
AS 'select $1 + $2;'
LANGUAGE SQL
IMMUTABLE
RETURNS NULL ON NULL INPUT
;
select * from add_sample_1107(1,200);
select * from add_sample_1107(null,1000);
select * from add_sample_1107(null,null);
-
RETURNS NULL ON NULL INPUTをうまく使ってみる。次の関数は2つの引数をとるが、演算をしないので返り値の方がIS NOT NULLならば通常値が返ってくる。 - 以下のように2つ目の引数はNULLでもちゃんと1が返ってくる。
- ここで
RETURNS NULL ON NULL INPUTオプションを設定すると以下のように一番最後の一引数がNULLになってしまうとNULLでない返り値がNULLになる。

