在tzquery.parambyname上设置列



我需要运行一个 SELECT语句,其中列名是可变的,如下:

query.SQL.Text := 'SELECT A.:COLUMN '+
                  '  FROM A         ';
query.ParamByName('COLUMN').AsString := 'column_name';
query.Open();

但是,当我这样做时,SQL语法中存在错误,因为该组件运行为:

SELECT A.'column_name'
  FROM A

是否有一种方法可以在没有引号的情况下设置这些参数,以便我可以动态选择列?

您可以按以下方式更改查询(使用所有列创建子查询(。您选择的所有列必须是相同的类型:

select myData
from (
  select col1 as myData, 'col1' as colName from A
  union all
  select col2, 'col2' from A
  union all
  select colLast, 'colLast' from A
  ) as mTbl
where colName=:COLUMN

相关内容

  • 没有找到相关文章

最新更新