Postgresql 触发器函数返回:查询没有结果数据的目标

Postgresql 触发器函数返回:查询没有结果数据的目标,postgresql,Postgresql,我正在尝试创建一个触发器函数来验证查询结果,以便执行一个函数。下面的代码返回错误:查询没有结果数据的目标。尽管我几次试图修复它,但还是找不到解决办法 BEGIN WITH u AS (SELECT row_number() OVER (ORDER BY observation.observationid) AS obsid, observation.observationid, observation.resulttime, numericvalue.value,

我正在尝试创建一个触发器函数来验证查询结果,以便执行一个函数。下面的代码返回错误:查询没有结果数据的目标。尽管我几次试图修复它,但还是找不到解决办法

BEGIN
WITH u AS (SELECT row_number() OVER (ORDER BY observation.observationid) AS obsid,
    observation.observationid,
    observation.resulttime,
    numericvalue.value,
    series.observablepropertyid,
    series.procedureid,
    observableproperty.name,
    lag(numericvalue.value, 1) OVER (ORDER BY observation.observationid) AS prev_value     
   FROM observation
     JOIN numericvalue ON numericvalue.observationid = observation.observationid
     JOIN series ON series.seriesid = observation.seriesid
     JOIN observableproperty ON observableproperty.observablepropertyid = series.observablepropertyid
    WHERE observableproperty.name::text = 'LivelloInvaso'::text 
  ORDER BY observation.observationid DESC
 LIMIT 1)

SELECT value, prev_value FROM u;

IF u.value >= 463
AND u.prev_value < 463

THEN
    perform ___send_mail();
    ELSE RETURN null;   
END IF;
RETURN null;
END;

我不知道我为什么会犯这个错误。有什么问题?

您需要告诉SELECT将结果放入哪个变量

DECLARE
    rcd RECORD;
BEGIN
    ...
    SELECT value, prev_value INTO rcd FROM u; 

    IF rcd.value >= 463
    AND rcd.prev_value < 463

谢谢它现在起作用了,这是缺少的通道!