我正在尝试编写一个函数,该函数接受最小和最大输入并返回一个双精度值。
输入:
high (integer)
low (integer)
输出:
val (double)
我的SQL代码是:
CREATE OR REPLACE FUNCTION random_between(low INT ,high INT)
RETURNS DOUBLE AS
BEGIN
RETURN floor(random()* (high-low + 1) + low);
END;
错误:
错误:“ BEGIN”处或附近的语法错误
您可以将其编写为纯SQL函数,如下所示:
create or replace function random_between(low int ,high int)
returns double precision as $$
select floor(random()* (high-low + 1) + low);
$$ language sql;
您的代码有问题:
函数的主体需要用单引号引起来(或类似的东西,例如$$
)
double
Postgres中没有数据类型;也许你是说double precision
; 但是请注意,这是一个不精确的数据类型:这可能是,也可能不是您想要的,但是请确保您了解其中的含义
您需要指定language
函数的
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句