我想对查询返回的表的行进行编号。更具体地说,我的函数随机化了表的行。我想要一个额外的列,从随机化完成后的1-n开始计算。这是我当前的randomize函数代码:
create or replace function random_surnames(num integer)
returns table(name character(30)) as
$$
begin
RETURN QUERY
select public."Surname".surname
from public."Surname"
order by random()
Limit num;
end;
$$
language 'plpgsql' volatile;`
它应该很简单,我似乎无法在线找到解决方案,因为我没有使用正确的关键字。
答案 0 :(得分:2)
这可以使用ROW_NUMBER和子查询来实现,以下是转换查询的示例:
select *, ROW_NUMBER() OVER () FROM
(select public."Surname".surname
from public."Surname"
order by random()
Limit num) subq;