2017-04-03 87 views
-1

所以我是SQL新手,这实际上是我的第一个项目。 我想要做的是创建一个函数,返回一个随机数的表。我使用pgAdmin的4个IDEsql创建随机表函数

这是代码:

CREATE OR REPLACE FUNCTION create_amka(n integer) 
RETURNS TABLE(amka integer) AS 
$$ 
BEGIN 
return query 

    select cast(random()*100 as integer) 
    ORDER BY random() LIMIT n; 

END; 
$$ 
LANGUAGE 'plpgsql' IMMUTABLE; 

所以fanction具有输入(正整数),应该返回一个表,N个随机数。但它只返回1个数字。 “LIMIT n”是否是问题?有没有更好的方式来创造这样的魅力? 在此先感谢

回答

0

如果你想返回n号码,您的使用generate_series()

select cast(random()*100 as integer) 
from generate_series(1, n); 

没有必要对它们进行排序。他们已经是随机的。

+0

是的它的工作.. did not知道这generate_series()函数存在.. thx很多人! –