我有疑问:
select ¯o1 from table1
where ¯o2delphi代码:
macrobyname('macro1').value := 'field1 as test,field2';
macrobyname('macro2').value := 'test=1';我得到了一个类似这样的错误:
Unknown column test in where clouse问题2)
showmessage(sql.text);结果是"select‘o1 from table1 where’O2“,但我希望是"select field1 as test,field2 from table1 where test=1”
如何在替换宏后获取sql.text。
(请原谅我的英语不好)。
致以最好的问候,努里
发布于 2013-10-07 15:15:54
您没有说您使用的是什么数据库,但是我使用的那些数据库(SQL Server和Sybase)不允许在where子句中使用字段别名。所以你不得不说:
macrobyname('macro2').value := 'field1=1';发布于 2013-10-07 16:02:13
标准SQL不允许在WHERE子句中引用列别名。之所以施加此限制,是因为在计算WHERE子句时,可能尚未确定列值。С列别名可以在ORDER BY子句中使用,但不能在WHERE、GROUP BY或HAVING子句中使用。
https://stackoverflow.com/questions/19218607
复制相似问题