【问题标题】:DB2 (AS400/ i Series) column value descriptionDB2(AS400/i 系列)列值说明
【发布时间】:2020-11-06 14:54:29
【问题描述】:

我在网上找到了一个查询,它可以帮助我获取所有列名以及列描述,我已将其粘贴在下面。

Select
SYSTEM_TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, varchar(COLUMN_TEXT, 50) As COLUMN_DESC
From QSYS2.syscolumns
WHERE TABLE_NAME = 'xxxxxx' AND SYSTEM_TABLE_SCHEMA = 'yyyyyy'

是否有提供列值描述的查询?我在下面附上了所需的示例输出。 [项目代码] 列有三个值:A、B、C -> 我想要这些值的相应描述。

Desired Output

【问题讨论】:

    标签: db2 ibm-midrange data-dictionary


    【解决方案1】:

    这取决于您的数据结构。 SQL 不知道代码值的描述。那是您的数据库中包含的数据。因此,如果您有一个包含代码描述的表,那么您可以通过连接获得它。如果您没有这样的表,那么您将无法获得该信息。这是一个如何为您工作的示例。

    create table master (
      id       integer primary key,
      name     varchar(128) not null,
      code     varchar(10) not null);
    
    create table codes (
      id           varchar(10) primary key,
      description  varchar(128) not null);
    
    insert into master 
      values (1, 'test1', 'A'),
             (2, 'test2', 'B'),
             (3, 'test3', 'C'),
             (4, 'test4', 'A'),
             (5, 'test5', 'B');
    
    insert into codes
      values ('A', 'Code 1'),
             ('B', 'Code 2'),
             ('C', 'Code 3');
    
    SELECT master.id, master.name, master.code, codes.description
    FROM master 
    JOIN codes on master.code = codes.id;
    
    |ID|NAME |CODE|DESCRIPTION|
    |--|-----|----|-----------|
    |1 |test1|A   |Code 1     |
    |2 |test2|B   |Code 2     |
    |3 |test3|C   |Code 3     |
    |4 |test4|A   |Code 1     |
    |5 |test5|B   |Code 2     |
    

    【讨论】:

      【解决方案2】:

      如果您的数据库构建正确,那么应该在您的表 'XXXXX' 和 'codes' 表之间定义一个引用(又名外键)约束,jmarkmurphy 提供了一个示例。

      有各种system catalogs 会显示该约束。

      IBM i

      • qsys2.syscst
      • qsys2.syscstcol
      • qsys2.syscstdep
      • qsys2.syskeycst

      ODBC/JDBC

      • sysibm.SQLFOREIGNKEYS

      ANS/ISO

      • qsys2.REFERENTIAL_CONSTRAINTS

      不幸的是,Db2 for i 上的许多旧应用程序都没有定义此类约束。

      “代码”表也可能不存在。而且描述只是硬编码在各种程序中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-06-05
        • 1970-01-01
        • 2022-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多