Возврат нескольких столбцов с sql: у запроса ERROR нет места назначения для данных результата - PullRequest
0 голосов
/ 13 февраля 2020

Привет,

Искал решение этой проблемы, но не повезло. Я хочу вернуть несколько столбцов.

Код ошибки:

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 name(character varying) line 3 at SQL statement
SQL state: 42601

Мой код:

CREATE OR REPLACE FUNCTION name(vn CHARACTER VARYING)
    RETURNS CHARACTER VARYING AS $$
BEGIN
SELECT
    (SELECT row FROM TableName AS tn WHERE tn.viitenumber = vn) AS vn1,
    (SELECT row FROM TableName AS tn WHERE tn.viitenumber = vn) AS vn2;
END; $$
LANGUAGE plpgsql

Мне удалось вернуть один столбец с

RETURN(SELECT TableName FROM lepingu_lisad AS ll WHERE ll.viitenumber = vn) AS vn1;

но как мне вернуть оба столбца

1 Ответ

0 голосов
/ 13 февраля 2020
CREATE OR REPLACE FUNCTION name
(vn CHARACTER VARYING,
 OUT vn1 CHARACTER VARYING,
 OUT vn2 CHARACTER VARYING) AS $$
BEGIN
SELECT
    SELECT row into vn1 FROM TableName AS tn WHERE tn.viitenumber = vn;
    SELECT row into vn2 FROM TableName AS tn WHERE tn.viitenumber = vn;
END; $$
LANGUAGE plpgsql;

Использование будет:

select (name_results).vn1, (name_results).vn2 from name(_vn) name_results;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...