我试图在postgres中使用IF ElSE根据条件选择查询。下面是我的问题。

DO
$do$
DECLARE res varchar(50) := 'a';
BEGIN
IF (res = 'a') THEN
SELECT "Name" FROM "TestTable";
ELSE
SELECT "ID" FROM "TestTable";
END IF;
END
$do$

但我有以下错误
ERROR:  query has no destination for result data
HINT:  If you want to discard the results of a SELECT, use PERFORM instead.
CONTEXT:  PL/pgSQL function inline_code_block line 5 at SQL statement

我在这里做错了什么??

最佳答案

DO目的是执行匿名代码块,它不返回任何内容(具体来说,它返回void)。
您可以在之后执行SELECT语句(在DO块之外),或者对需要预先创建的临时表执行INSERT(这可以在块内完成)。

关于postgresql - 出现错误“查询没有结果数据的目的地”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52438141/

10-11 22:36
查看更多