Oracle、Postgresql使用round() 以此来创建函数 (自定义保留几位小数)
Oracle:
CREATE OR REPLACE FUNCTION FUN_ROUND(divisor number, dividend number,reserve number default 2)
RETURN number IS
dealer number;
BEGIN
if divisor is null or dividend is null or reserve > 5 then
return 0;
else
SELECT round((divisor / dividend) *100,reserve)
INTO dealer
FROM dual;
end if;
RETURN dealer;
END;
Postgresql:
CREATE OR REPLACE FUNCTION fun_round(
divisor numeric,
dividend numeric,
reserve integer DEFAULT 2)
RETURNS numeric
LANGUAGE 'plpgsql'
COST 100
VOLATILE PARALLEL UNSAFE
AS $BODY$
DECLARE
dealer numeric;
BEGIN
IF divisor is null or dividend is null or reserve > 5 then
dealer:= 0;
else
SELECT round((divisor / dividend)*100::numeric, reserve) INTO dealer FROM dual;
end if;
return dealer;
END;
$BODY$;