我这里有一个表,它不断重复环境中的结果。
请参阅:
Select * from SYSCOLUMNS where table_name = '*EXAMPLE*'
RESULT 1 | RESULT B 1 | ENV 1
RESULT 2 | RESULT B 2 | ENV 1
RESULT 3 | RESULT B 3 | ENV 1
RESULT 1 | RESULT B 1 | ENV 2
RESULT 2 | RESULT B 2 | ENV 2
...等等等等
我尝试使用group by,但由于编码方式略有变化,所以效果不佳。我也尝试指定环境,但从一台机器到另一台机器,环境会发生变化。但我确实有一个名为“Ordinal_Position“的列,它提供了一个排序ID,并且也会重复。
我想做的是使用它作为一个单一的值在我的限制。这里我给你看我的查询:
SELECT SYSTEM_COLUMN_NAME, DATA_TYPE, STORAGE, COLUMN_TEXT, COLUMN_NAME, COLUMN_HEADING
FROM SYSCOLUMNS
WHERE TABLE_NAME = '*EXAMPLE*'
LIMIT (SELECT ORDINAL_POSITION
FROM SYSCOLUMNS
WHERE TABLE_NAME = '*EXAMPLE*'
GROUP BY ORDINAL_POSITION
ORDER BY ORDINAL_POSITION DESC LIMIT 1)
limit指令要求我输入一个“单值”才能工作。是否可以创建一个变量或类似的东西?我尝试使用“AS”和“WITH”,但没有得到任何结果。
PS:我使用的是DB2,在一个Iseries环境中,Syscolumns是由系统自动生成的
1条答案
按热度按时间8iwquhpp1#
是否尝试从第一个可用模式(环境)中获取表的列信息?请尝试以下操作
要使用select的结果来限制行,可以尝试以下操作