如何使用INTO从postgres函数中的查询中分配选择结果

问题描述 投票:0回答:1

在postgres中我创建了这个函数,当它被调用时,它会打印count值,而不是我传入变量的c.first_name值。我不知道这是否是正确的方法。我怎么能纠正这个?

declare
    mostExperienced text;
BEGIN
    SELECT COUNT(*) AS count, c.first_name INTO mostExperienced 
    FROM crew_members c
    INNER JOIN aircrafts_members am ON am.crew_id = c.id 
    GROUP BY am.crew_id, c.first_name ORDER BY count DESC LIMIT 1;
    RETURN mostExperienced;
END;
postgresql
1个回答
0
投票

SELECT ... INTO有两个变量,所以记录可能是更好的选择

declare
    mostExperienced RECORD;
BEGIN
    SELECT COUNT(*) AS count, c.first_name 
    INTO mostExperienced 
    FROM crew_members c
    INNER JOIN aircrafts_members am ON am.crew_id = c.id 
    GROUP BY am.crew_id, c.first_name ORDER BY count DESC 
    LIMIT 1;

    RETURN mostExperienced.first_name;
END;
© www.soinside.com 2019 - 2024. All rights reserved.