出现错误“查询没有结果数据的目的地”

时间:2018-09-21 06:51:34

标签: postgresql plpgsql

我试图在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

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

DO的目的是执行匿名代码块,并且不返回任何内容(具体来说,它返回void)。

之后,您可以执行arr语句(在SELECT块之外),或者对需要事先创建的临时表执行DO(这可以在块)。