我需要运行一个 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