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