我有疑问:
select ¯o1 from table1
where ¯o2
delphi代码:
macrobyname('macro1').value := 'field1 as test,field2';
macrobyname('macro2').value := 'test=1';
我收到这样的错误:
Unknown column test in where clouse
问题2)
showmessage(sql.text);结果是“select1& macro1 from table1 where& macro2” 但我希望“select field1 as test,field2 from table1 where test = 1”
如何在宏替换后获取sql.text。
(对不起英语不好)。
最好的问候, 努里
答案 0 :(得分:1)
您没有说明您使用的数据库,但我使用过的数据库(SQL Server和Sybase)不允许在where子句中使用字段别名。所以你不得不说:
macrobyname('macro2').value := 'field1=1';
答案 1 :(得分:1)
标准SQL不允许在WHERE子句中引用列别名。强制执行此限制是因为在评估WHERE子句时,可能尚未确定列值。 Сolumn别名可以在ORDER BY子句中使用,但不能在WHERE,GROUP BY或HAVING子句中使用。