如何构建查询以基于存储在表中的列名检索数据

时间:2015-01-12 06:23:10

标签: sql db2

对不起我是db2sql的新手,我不知道我的问题是不是逻辑。请更正,如果我错了,谢谢。

我的表格如下:

TABLE NAME : TABLE_FRUIT

FRUIT_ID    FRUIT_NAME     FRUIT_PRICE
---------------------------------------
   1          Apple            1
   2          Orange           2
   3          Banana           1

我使用此查询在TABLE_FRUIT中存储了列名(FRUIT_PRICE)和表名TABLE_ALL

select tabname,colname from SYSCAT.columns where tabname='TB_FRUIT',一旦我获得数据,我就会将其分解并存储在TABLE_ALL

TABLE NAME : TABLE_ALL

TABLE_ID     TABLE NAME     TABLE_COLUMN 
----------------------------------------
   1         TABLE_FRUIT     FRUIT_PRICE

问题

  • 是否可以从FRUIT_PRICE下的TABLE_FRUIT获取TABLE_ALL值?
  • 如何编写查询来获取值?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

动态SQL可以解决您的问题

declare @colname nvarchar(30) = (select top 1 COLUMN_NAME from  table_all where tabname='TB_FRUIT')

declare @sql nvarchar(30)

set @sql='select ' +@colname +' from TB_FRUIT'

exec(@sql)

它仅提供表TB_FRUIT的第一列

由此显示@colname(即:FRUIT_PRICE)下的所有值

相关问题