2017-04-03 64 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很多人! –