`
cngump
  • 浏览: 219522 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Access 的top和order by 的问题

阅读更多

今天用Access做sql查询的时候出现了比较奇怪的问题:
用:
select top 10 * from [BBSXP_Threads] where IsDel=0 order by views
却返回 大于 10 行的记录,根据理论应该是返回 按 views 排序后的 前10个记录。可是在Access中却显示大于 10 行的记录。 原来Access把按views进行排序,当views的某些记录相等时,access所处的位置相同(就像体育比赛中的并列第一),而进行排序,Access会把前10个位置进行排序,而不是排序的前10个记录。

解决方法:
在order by 后加入 其他唯一值的记录名。例如:
select top 10 * from [BBSXP_Threads] where IsDel=0 order by views,id
这样就没事了。

分享到:
评论

相关推荐

    Access数据库随机抽取记录条数.zip

    Access数据库是一种轻量级...SQL查询利用`TOP`和`ORDER BY NEWID()`或`RANK()`等函数,而VBA宏则通过编程方式实现随机访问。无论哪种方法,都可以根据实际需求灵活运用,帮助我们在处理大量数据时进行有效的抽样分析。

    浅谈mssql access数据库 top分页方法

    string pagingSql = $"SELECT TOP {_pagesize} * FROM (SELECT TOP {_recordcount} * FROM ({_safesql}) AS T1 ORDER BY {sbOriginalOrder.ToString()}) AS T2 ORDER BY {sbReverseOrder.ToString()}"; // 当前页...

    随机得到Access数据库记录

    string sql = "SELECT TOP 10 id AS 序号, Title AS 标题 FROM Document ORDER BY Rnd(" + (-1 * intRandomNumber).ToString() + "*id)"; OleDbConnection MyConnection = new OleDbConnection(MyConnString); ...

    order by newid() 各种数据库随机查询的方法

    SQL Server: 代码如下:Select TOP N * From TABLE Order By NewID() view plaincopy to clipboardprint?Select TOP N * From TABLE Order By NewID()...Access: 代码如下:Select TOP N * From TABLE Order By Rnd(ID

    Access采用sql语句与sql的区别

    | TOP | 如果有一个 ORDER BY 子句,自动包含层次。 | SQL Server 6.5 不支持。SQL Server 7.0 需要一个明确的 WITH TIES 子句。 | | CREATE INDEX | 允许创建升序和降序索引。允许声明主键,没有 Null 值,并且忽略...

    基于Access的SQL帮助文档

    这些文件对于深入学习和理解Access中的SQL使用非常有帮助,用户可以通过查阅它们来解决具体问题或查找特定功能的用法。 综上所述,基于Access的SQL不仅涉及基础的查询操作,还包括了复杂的数据库管理功能。通过熟练...

    ASP简单通讯录(ACCESS数据库)

    例如,`SELECT * FROM 表名 WHERE 条件 ORDER BY 字段名 ASC/DESC`。 4. 分页显示:通过计算总记录数和每页显示的数量,生成相应的页码,并使用SQL的`LIMIT`或`TOP`关键字限制返回的数据量。 5. 用户交互:设计表单...

    数据库分页查询整理(oracle、mysql、SqlServer、access、db2等)

    select top pageSize * from 表名 where id not in (select top pages id from 表名 order by id) ``` 其中,pageSize 是每页显示的记录数,pageNumber 是当前页数,pages 是计算出的起始记录数。 2. 第二种分页...

    ACCESS数据库常用SQL语句[参考].pdf

    SELECT 语句也可以与其他子句结合使用,例如 WHERE 子句、GROUP BY 子句、HAVING 子句、ORDER BY 子句等,以进一步约束和组织所返回的数据。 例如,使用 WHERE 子句来筛选记录: SELECT * FROM Employees WHERE Age...

    asp.net access数据库分页

    在Access数据库中,由于不直接支持像SQL Server那样的TOP或LIMIT关键字进行分页,我们需要利用ORDER BY和子查询来实现类似的功能。 以下是一个简单的分页示例: 1. 首先,我们需要创建一个连接字符串,用于连接...

    js操作access分页

    对于分页,可以使用`SELECT * FROM TableName LIMIT start, limit`(非标准SQL,但某些数据库支持,如MySQL)或者使用`TOP limit`结合`ORDER BY`在SQL Server和Access中。 二、分页实现步骤 1. 计算总页数:根据...

    随机提取Access/SqlServer数据库中的10条记录的SQL语句

    代码如下:本文相关代码如下:Access:select top n * from table order by rnd(id)’id为数据库的自动编号字段Sql Server:select top n * from table order by newid() 但在ASP+Access中,或许是因为缓存的原因,第...

    C# 操作access实例

    string query = $"SELECT TOP {pageSize} * FROM TableName ORDER BY Id OFFSET ({(currentPage - 1) * pageSize}) ROWS"; ``` 3. 填充ListView:使用查询结果填充ListView项。 ```csharp while (reader.Read()) {...

    access sql 语句

    - Access在有ORDER BY子句的情况下,TOP会自动包含层次,而SQL Server 6.5不支持。在SQL Server 7.0及更高版本中,需要使用WITH TIES子句来实现相同功能。 8. **索引创建**: - Access允许创建升序和降序索引,且...

    asp加载access数据库并生成XML

    `sql="select top 100 [song1name],[dong1url] from [test] order by id desc"`这条SQL语句是实现这一目标的关键,`top 100`限制返回的记录数量,`order by id desc`表示按`id`字段降序排列。 `rs.Open sql, conn, ...

    Access数据库注入高级玩法

    - 示例:`select name, password, id from users union select user, pwd, uid from users order by 2 union select * from table_name`,这里使用了 `UNION` 来合并多个查询的结果,并用 `ORDER BY` 指定了排序...

    ACCESS数据库考试试题和答案.pdf

    17. **TOP子句**:TOP子句用于选取查询结果的前N条记录,结合WHERE子句可以筛选特定条件的记录,如“SELECT TOP 3 * FROM 学生 WHERE 性别='女' ORDER BY 身高”将选取女生中身高最高的前三名。 以上内容详细解释了...

    asp+access 分页代码(完整注释版)【原创】

    sql = "SELECT * FROM (SELECT TOP 10 * FROM YourTable ORDER BY SomeColumn) AS TempTable WHERE NOT ID IN (SELECT TOP 10 ID FROM YourTable ORDER BY SomeColumn)" ``` 这里,SomeColumn是你用于排序的字段。 ...

Global site tag (gtag.js) - Google Analytics