簡體   English   中英

錯誤:“ IF”處或附近的語法錯誤

[英]ERROR: syntax error at or near “IF”

我在函數中添加了IF子句:

CREATE OR REPLACE FUNCTION get_path_set(IN pathset_id_in character,OUT id character,OUT  pathset_id character,OUT utility double precision)
RETURNS SETOF record AS
$BODY$
BEGIN
    IF EXISTS (SELECT 1 FROM "A" WHERE "ID" = $1)  THEN 
        SELECT "ID", "PATHSET_ID", "UTILITY"
        FROM "B"
        where "PATHSET_ID" = $1;
    END IF;
END;
$BODY$

  LANGUAGE sql VOLATILE
  COST 100
  ROWS 1000;

它拋出一個錯誤:

ERROR:  syntax error at or near "IF"
LINE 8:  IF EXISTS (SELECT 1 FROM "A" ...

我想念什么嗎?

謝謝

當語言是SQL時,它需要是常規查詢,因此可以通過在WHERE子句中移動IF條件將邏輯轉換為普通SQL:

SELECT "ID", "PATHSET_ID", "UTILITY"
FROM "B"
WHERE "PATHSET_ID" = $1
AND EXISTS (SELECT 1 FROM "A" WHERE "ID" = $1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM