作者在Access数据库程序项目开发过程中,遇到了几个问题,让我纠结了许久,特拿出来备忘,希望对大家有用。这些问题都是因为access数据库的自身特性造成的。
1、Access 不支持top 0,如果用top 0,要么返回空表(无表结构、无字段),要么出错。所以分页查询时需要判断先。
2、access数据库不支持不等于(“!=”)语法,需要改为“<>”。汗,这个和sql server等还是不一样的,害得我查了好久。。
3、如果排序列有重复值,用select top取前几条会错乱,有时候会把所有数据查出来了。解决方法:
a) select top 10 ID,Title,CreateTime,Click from News ORDER BY Click DESC 这句写法咋一看 很多人都觉得会没问题 很可惜出现了我刚描述的排序问题
解决方法 select top 10 ID,Title,CreateTime,Click from (select ID,Title,CreateTime,Click from News ORDER BY Click DESC) AS TABLERSULT
也就是用两个select嵌套查询就可以了。虽然性能方面有损失,但是目前看来也只能这样了。