sql - PostgreSQL - 使用函数命名选择查询中的列

标签 sql postgresql postgresql-9.2

我正在尝试以动态方式设置“select .. from”查询中的列名称。所以我创建了一个函数来返回列的名称,并尝试在选择查询中使用它。

函数是这个:

CREATE OR REPLACE FUNCTION get_column_name(iddoc int, campo text) RETURNS text
AS $$
#print_strict_params on
DECLARE
campoid text;
BEGIN

    SELECT campo_id INTO STRICT campoid
    FROM campos_td c
    JOIN (SELECT field4, field3 
        FROM frm7 
        WHERE iddocumento = iddoc) f ON c.tema_id = f.field3

    RETURN 'field10' || campoid;
END
$$ LANGUAGE plpgsql;

我试过类似的东西:

SELECT get_column_name(2, 'Size') FROM frm7
SELECT f.get_column_name(2, 'Size') FROM frm7 as f

但它们都不起作用。

最佳答案

pgsql EXECUTE command允许您运行任意 SQL 字符串,特别是您使用在运行时传入的列名构建的字符串。

关于sql - PostgreSQL - 使用函数命名选择查询中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54430713/

相关文章:

mysql - 添加到长而复杂的查询

json - 如何修剪 Postgres 的 JSON 数据类型中的空格?

java - 错误 : extra data after last expected column When trying to inserting csv file

ruby-on-rails - Rails column_hash 类型与实际数据库类型不同

mysql - 在 Mysql 中查找最高工资的 Left Join 或 Group By

sql - PostgreSQL 中的 GROUP BY 和 COUNT

php - 使用数组将数据插入数据库

python - SQLAlchemy:joinedload 子条款查询的 order_by(无)?

sql - 调整 SQL 查询,(查询优化)

postgresql - 准备语句 - 使用参数指定表名