【问题标题】:List all tables with a specific column Name列出具有特定列名称的所有表
【发布时间】:2022-10-12 23:16:20
【问题描述】:

我在这里没有找到合适的答案。所以我使用了很多不同的表。表的架构是GDBADMP.[Table_Name]USCH1060.[Table_Name]

现在我搜索一种方法来列出具有确切列名称的所有表,例如PLZ_ID。该列包含不同的值,有时是varcharint

喜欢:Show all Tables (GDBADMP.[Table_Name]) with the column Name PLZ_ID

我的第一个想法是这样的:

SELECT *
FROM GDBADMP.*
WHERE PLZ_ID

亲切的问候

【问题讨论】:

  • PLZ_ID 是什么?这是您所有感兴趣的表都有的列名吗?如果是,那么您使用的列值是什么?像PLZ_ID = 1 这样的东西?如果不是,那么请编辑您的问题以澄清。
  • 我添加了更多信息!
  • 查看syscat.columns 目录视图。您可以通过 (tabschema, tabname) 将它加入到 syscat.tables 以仅获取表(例如,不包括视图)。

标签: sql db2 dbeaver


【解决方案1】:

查看 syscat.columns 目录视图。您可以通过 (tabschema, tabname) 将它加入到 syscat.tables 以仅获取表(例如,不包括视图)。

感谢这个评论。我找到了解决办法!

SELECT *
FROM SYSCAT.COLUMNS a
WHERE a.colname = 'PLZ_ID'

【讨论】:

    【解决方案2】:

    我建议使用 SYSIBM.SYSCOLUMNS 这是一个包含所有表中所有字段的系统表。

    下面的示例查询将以 creator.table 的形式返回表:

    select trim(tbcreator)||'.'||trim(tbname) as fulltable
    from sysibm.syscolumns
    where name='PLZ_ID'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-29
      • 2012-04-17
      • 1970-01-01
      • 2014-11-04
      • 1970-01-01
      • 2021-05-02
      • 1970-01-01
      相关资源
      最近更新 更多