随机双函数 - POSTGRESQL
Random Double Function - POSTGRESQL
我正在尝试编写一个接受最小输入和最大输入以及 returns 双精度输入的函数。
输入:
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;
错误:
ERROR: syntax error at or near "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;
您的代码有问题:
函数体需要用单引号括起来(或者等价的东西,比如$$
)
Postgres 中没有 double
数据类型;也许你的意思是 double precision
;但是请注意,这是一个 不精确 数据类型:这可能是您想要的,也可能不是您想要的,但请确保您理解其中的含义
你需要指定函数的language
我正在尝试编写一个接受最小输入和最大输入以及 returns 双精度输入的函数。
输入:
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;
错误:
ERROR: syntax error at or near "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;
您的代码有问题:
函数体需要用单引号括起来(或者等价的东西,比如
$$
)Postgres 中没有
double
数据类型;也许你的意思是double precision
;但是请注意,这是一个 不精确 数据类型:这可能是您想要的,也可能不是您想要的,但请确保您理解其中的含义你需要指定函数的
language