我有查询:
select ¯o1 from table1
where ¯o2
德尔福密码:
macrobyname('macro1').value := 'field1 as test,field2';
macrobyname('macro2').value := 'test=1';
我收到这样的错误:
Unknown column test in where clouse
问题2)
显示消息(sql.text);结果是"从表 1 中选择 ¯o1,其中 ¯o2" 但我希望"从表 2 中选择字段 1 作为测试,字段 1,其中 test=1"
如何在宏替换后获取 SQL.文本。
(请原谅我英语不好)。
此致敬意努里
你没有说你正在使用什么数据库,但我使用的那些(SQL Server和Sybase)不允许在where子句中使用字段别名。所以你不得不说:
macrobyname('macro2').value := 'field1=1';
标准 SQL 不允许在 WHERE 子句中引用列别名。之所以施加此限制,是因为在计算 WHERE 子句时,可能尚未确定列值。别名可以在 ORDER BY 子句中使用,但不能在 WHERE、GROUP BY 或 HAVING 子句中使用。