我想知道 select 语句中的 where 条件是否具有可为空的变量。是否必须使用 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;