Select SYSIBM.SYSCOLUMNS查询在使用备注时显示两次列

Select SYSIBM.SYSCOLUMNS查询在使用备注时显示两次列,select,db2,system-tables,Select,Db2,System Tables,在使用DB2和只出现在一个表中的SYSIBM.SYSCOLUMNS时,我注意到一个奇怪的行为 这是我的疑问: select distinct NAME, COLTYPE, LENGTH, SCALE, REMARKS from SYSIBM.SYSCOLUMNS where TBNAME='Table1'; 通常情况下,结果会显示每个表一次 |===================================| | NAME |COLTYPE|LENGTH|SCALE|REMARKS|

在使用DB2和只出现在一个表中的
SYSIBM.SYSCOLUMNS
时,我注意到一个奇怪的行为

这是我的疑问:

select distinct NAME, COLTYPE, LENGTH, SCALE, REMARKS from SYSIBM.SYSCOLUMNS where  TBNAME='Table1';
通常情况下,结果会显示每个表一次

|===================================|
| NAME |COLTYPE|LENGTH|SCALE|REMARKS|
|col1  | ..... |......|.....|.......|
|col2  | ..... |......|.....|.......|
|col3  | ..... |......|.....|.......|
|===================================|
但如果我使用一个特定的表,我们称之为
Table2
,则每列显示两次:

|===================================|
| NAME |COLTYPE|LENGTH|SCALE|REMARKS|
|col1  | ..... |......|.....|.......|
|col1  | ..... |......|.....|.......|
|col2  | ..... |......|.....|.......|
|col2  | ..... |......|.....|.......|
|col3  | ..... |......|.....|.......|
|col3  | ..... |......|.....|.......|
|===================================|
但仅当我在select语句中包含
备注时。如果我从select中删除
备注
,则一切正常


问题的原因可能是什么?我的查询有问题吗?

每行的备注列中有什么


原始查询中有一个
不同的
。由于您只选择表名,是否可能在多个模式中有相同的表;一个带备注,一个不带备注?

每行备注栏中有什么内容


原始查询中有一个
不同的
。由于您只选择表名,是否可能在多个模式中有相同的表;一个有备注,一个没有?

您没有考虑模式。模式A和模式B中可能有表2

在卢乌:

我个人建议使用syscat模式来查询目录。sysibm是DB2内部的,这些表可能在不同版本之间发生变化

select TABSCHEMA, TABNAME, COLNAME, TYPENAME, LENGTH, SCALEREMARKS
from syscat.columns
where tabname = 'TABLE2'

您没有考虑模式。模式A和模式B中可能有表2

在卢乌:

我个人建议使用syscat模式来查询目录。sysibm是DB2内部的,这些表可能在不同版本之间发生变化

select TABSCHEMA, TABNAME, COLNAME, TYPENAME, LENGTH, SCALEREMARKS
from syscat.columns
where tabname = 'TABLE2'

DB2的哪个平台和版本?大型机和版本10.2。DB2的哪个平台和版本?大型机和版本10.2。