Предполагая, что вы пытаетесь построить динамический c запрос внутри функции PL / pg SQL, вам может потребоваться взглянуть на этот подход.
Пример данных
CREATE TABLE t (id_authors INT);
INSERT INTO t VALUES (1);
Функция
CREATE OR REPLACE FUNCTION myfunction(TEXT) RETURNS INT
LANGUAGE 'plpgsql' AS $BODY$
DECLARE i INT;
BEGIN
EXECUTE 'SELECT id_'|| $1 ||' FROM t LIMIT 1;' INTO i;
RETURN i;
END;
$BODY$;
Этот пример только показывает, как можно объединить строки для создания имени столбца внутри динамического c запроса.
Вызов функции
SELECT * FROM myfunction('authors');
myfunction
------------
1
(1 Zeile)
Дополнительная информация: