selectステートメントのwhere条件にnull許容変数があるかどうか疑問に思っていました。以下のように、同じ select ステートメントを 2 回記述するには、IF 条件を使用する必要がありますか? より良い方法はありますか?
FUNCTION function1(
foo IN INTEGER,
) RETURN INTEGER
ret INTEGER;
BEGIN
IF foo IS NULL THEN
SELECT COUNT(*) INTO ret FROM t WHERE t.col IS NULL;
ELSE
SELECT COUNT(*) INTO ret FROM t WHERE t.col = foo;
END IF;
RETURN ret;
END function1;