Microsoft Access 97是否支持派生表?派生查询报FROM子句语法错误
结论
Microsoft Access 97 不支持派生表语法,即你所写的在FROM子句中直接嵌套SELECT子查询作为数据源的写法,这就是触发Syntax Error in FROM Clause报错的根本原因,无需继续沿着派生表的优化思路调试。
版本特性说明
- 派生表(也称内联视图)的语法支持是从Access 2000版本才首次引入的,Access 97搭载的Jet 3.5 SQL引擎未实现该能力。该版本的SQL语法规则中,FROM关键字后仅允许直接引用物理表、提前保存好的查询对象,不接受直接写入嵌套SELECT语句作为数据源。
Access 97 环境下的替代优化方案
如果需要在Access 97中拆分体量过大的SQL,实现和派生表接近的结构优化效果,可以将子查询部分提前保存为独立的查询对象,再在主查询中像引用普通表一样调用这个预存查询即可。
以你给出的示例SQL为例,调整步骤如下:
- 新建查询,命名为
qry_FilteredData,写入原本放在派生表位置的逻辑后保存:
SELECT Id, RateId, FactorId FROM SomeTable WHERE FactorId <> 0
- 主查询直接引用该预存查询即可,写法和引用普通表完全一致:
SELECT Id, RateId, FactorId FROM qry_FilteredData;
提示:Access 97中的预存查询会被提前编译执行,实际运行效率不会低于直接编写嵌套子查询,完全可以满足拆分大段SQL、提升代码可读性的需求。
内容的提问来源于stack exchange,提问作者Brian Hooper
相关产品推荐
相关产品推荐

