見つかった値に応じて 'YES'または 'NO'を表示しようとしました(引数で指定された日付より前にツリーが処理されている場合はYES、そうでない場合はNO)。ここで内部IFまたはケースを持つSQL - SELECT
は私の機能です:
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
IF EXISTSの条件付きロジックを閉じるには、END IFの後ろにセミコロンが必要だと思います。 – Dresden