我试图在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
我在这里做错了什么?
答案 0 :(得分:1)
DO
的目的是执行匿名代码块,并且不返回任何内容(具体来说,它返回void)。
之后,您可以执行arr
语句(在SELECT
块之外),或者对需要事先创建的临时表执行DO
(这可以在块)。