在QQ群里看到有人问到,pgSQL是否支持递归,于是顺手写了一个来测试,果然是支持的。
CREATE OR REPLACE FUNCTION fact(n int4) RETURNS int4 AS $BODY$ BEGIN IF n > 1 THEN RETURN n * fact(n-1); ELSE RETURN 1; END IF; END $BODY$ LANGUAGE 'plpgsql' VOLATILE;