在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;
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;