我需要运行SELECT
语句,其中列名是可变的,如下所示:
query.SQL.Text := 'SELECT A.:COLUMN '+
' FROM A ';
query.ParamByName('COLUMN').AsString := 'column_name';
query.Open();
但是,当我这样做时,SQL语法会出错,因为该组件的运行方式为:
SELECT A.'column_name'
FROM A
有没有一种方法可以不使用引号设置这些参数,以便我可以动态选择列?
答案 0 :(得分:0)
您可以按以下方式更改查询(创建具有所有列的子查询)。您选择的所有列都必须是同一类型:
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