【问题标题】:Select columns in PostgreSQL from an array从数组中选择 PostgreSQL 中的列
【发布时间】:2021-12-18 20:11:27
【问题描述】:

假设我有以下查询:

SELECT
    A, b, c, d, e, f, g, h, i, j, k
INTO test
FROM source
WHERE ...

SELECT
    A, b, c, d, e, f, g, h, i, j, k
INTO test1
FROM source
WHERE …

SELECT
    A, b, c, d, e, f, g, h, i, j, k
INTO test2
FROM source
WHERE …

有什么方法可以将 A、b、c、d、e、f、g、h、i、j、k 放入一个列表或数组中,然后我可以在 select 中传递?

类似这样的:

myColumns = [A, b, c, d, e, f, g, h, i, j, k]

SELECT
    myColumns
INTO test2
FROM source

【问题讨论】:

  • 您可以简单地通过字符串连接动态构造SELECT。
  • 不相关,但是:不鼓励使用 select ... into new_table 以支持符合标准的 create table new_table as select ...

标签: sql arrays postgresql list


【解决方案1】:

如果您使用的是 psql,您可以设置如下变量:

\set cols a,b,c

然后使用它:

SELECT :cols FROM test;

【讨论】:

    猜你喜欢
    • 2020-08-17
    • 1970-01-01
    • 1970-01-01
    • 2020-08-30
    • 2013-11-30
    • 2012-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多