Ошибка получения "у запроса нет места назначения для данных результата" - PullRequest
0 голосов
/ 21 сентября 2018

Я пытаюсь выбрать запрос на основе условия, используя IF ElSE в postgres.Ниже мой запрос.

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 голосов
/ 21 сентября 2018

DO цель состоит в том, чтобы выполнить блок анонимного кода, и он ничего не возвращает (он возвращает void, если быть точным).

Вы можете выполнить свой оператор SELECTзатем (за пределами блока DO) или выполните INSERT для временной таблицы, которую необходимо создать заранее (и это можно сделать внутри блока).

...