0
试图找到一行,根据找到的值显示'YES'或'NO'(如果树已在参数中给出的日期之前处理过,请说YES否)。SQL - SELECT with inner IF or CASE
这里是我的功能:
CREATE OR REPLACE FUNCTION tree_care(care_date DATE)
RETURNS TABLE(name VARCHAR(32), type VARCHAR(32), treated TEXT) AS
$$
BEGIN
RETURN QUERY
SELECT tree.name,
tree.type,
IF EXISTS (SELECT * FROM treatment
JOIN tree ON tree.name = treatment.tree_name
WHERE treatment.date < care_date) THEN
'YES'::text
ELSE
'NO'::text
END IF
FROM tree;
END;
$$
而且我得到以下错误:
ERROR: syntax error at or near "EXISTS"
LINE 8: IF EXISTS (SELECT * FROM treatment
怎样才能实现一个SELECT内的IF语句?
PS:使用PostgreSQL 9.4
我认为在END IF之后需要一个分号才能关闭IF EXISTS条件逻辑。 – Dresden