【问题标题】:Get columnnames as string sepparated by comma / list以逗号/列表分隔的字符串形式获取列名
【发布时间】:2020-08-19 07:02:17
【问题描述】:

我正在对我的一些表和所有字段进行一些插入,但有一些需要插入或更新。 Like here。 有没有一种快速的方法可以将表的列作为字符串返回,以便我可以将它们复制到我的 sql 查询中? 例如我有一张桌子:

create table myTable1
(
column1                   integer  not null,
column2                   integer  not null ,
column3                   integer  not null,
column4                   integer  not null,
column5                   integer  not null,
...a lot more fields...
)

稍后我想从另一个表myTable2 插入一些具有相同字段的内容(不要质疑我的方式以及为什么我有两个相同的表)。

INSERT INTO myTable SELECT column1, column2, column3, column4, ...
FROM table_source

但是表格有这么多字段,手动编写它们很麻烦,并且有一个字符串会更快,我可以删除我不需要的列名。是否有一个很好的查询可以输出"column1, column2, column3, column4, ...",所以我不必自己编写并且可以将 tha 复制到我的查询中?

【问题讨论】:

    标签: sql postgresql


    【解决方案1】:

    很快找到答案。

    SELECT table_catalog, string_agg(column_name, ', ')
      FROM information_schema.columns
     WHERE table_schema = 'mySchema'
       AND table_name   = 'myTable' GROUP  BY 1;
    

    这个查询对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多