gpt4 book ai didi

postgresql - 返回 SETOF 时为 "ERROR: query has no destination for result data"

转载 作者:行者123 更新时间:2023-11-29 13:54:46 26 4
gpt4 key购买 nike

我在使用此功能时遇到问题:

The error I get is ERROR: query has no destination for result data.

我做错了什么?

CREATE OR REPLACE FUNCTION list_top_Patients_Visit()
RETURNS SETOF PatientsList AS $$

DECLARE
_Pat_Number visit.Pat_Number%type;
_Patient_Name patient.NAme%type;
_Doc_Number doctor.Doc_Number%type;
_Doc_Name doctor.Name%type;
_Specialty doctor.Specialty%type;
_Total_visit INTEGER;
_Total_price visit.Price%type;
_Max_price visit.Price%type;

BEGIN

FOR _Pat_Number, _Total_visit IN (

SELECT v.pat_number _Pat_Number, count((v.pat_number)) _Total_visit

FROM visit v, patient p
GROUP BY v.pat_number, p.Name
ORDER BY _Total_visit DESC, v.pat_number
LIMIT 5)
LOOP
SELECT count((visit.pat_number)) _Total_visit, patient.Name _Patient_Name, visit.doc_number _Doc_Number, count((visit.doc_number)) max_metge, sum(visit.price) _Total_price, max(visit.price) _Max_price, doctor.name _Doc_Name, doctor.specialty _Specialty
FROM visit, doctor, patient
WHERE visit.pat_number=_Pat_Number and visit.doc_number=doctor.doc_number and patient.pat_number=_Pat_Number
GROUP BY visit.doc_number, doctor.name, specialty, patient.Name
ORDER BY max_metge DESC, visit.doc_number
LIMIT 1;
RETURN NEXT _Patient_Name, _Doc_Name, _Specialty, _Total_visit, _Total_price, _Max_price;
END LOOP;

END;
$$LANGUAGE plpgsql;

最佳答案

您必须使用 SELECT ... INTO ... 从查询中设置 PL/PgSQL 中的变量。

没有 INTO

SELECT 是不允许的。如果要丢弃结果,请改用 PERFORM。如果您希望将结果存储在变量中,请使用 SELECT ... INTO ...。详情请参阅手册。

在这种情况下,您可以使用 RETURN NEXT QUERY SELECT ... 而不是单独的 SELECTRETURN 步骤。

关于postgresql - 返回 SETOF 时为 "ERROR: query has no destination for result data",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34394681/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com