读书人

SQL 子查询和排序有关问题

发布时间: 2012-02-02 23:57:14 作者: rapoo

SQL 子查询和排序问题
我在做 asp.net 项目时
根据在子类表(class_db)

想在前台显示 文章列表示前9个,之后还要 art_time (文章时间来显示) 降序排列

我的Sql语句如下

string mysql= "select top 9 art_id,art_title from art_db where art_c_id=(select class_id from class_db where class_name= '游戏天地 ') ORDER BY art_time DESC ";

在前台是用 DataList 帮定的,如果不排序,是显示9个数据
但是加上 ORDER BY art_time DESC 的话 她全部显示出来了,也有排序效果

[解决办法]
试试

SELECT top 2 * from (select * from tablea a order by id desc)

不过也是2条
SELECT top 2 * from tablea a order by id desc

[解决办法]
Access确实存在这个Bug,不过,你可以变通处理一下,如果表中存在唯一字段ID,可以这样:

string mysql= "
select top 9 art_id,art_title
from art_db
where art_c_id=(select class_id from class_db where class_name= '游戏天地 ')
ORDER BY art_time DESC, ID "; --注意:这里除了原来的降序排序外,还增加了排序列ID

读书人网 >Access

热点推荐