如何解决access 中 SELECT TOP 1语句竟然返回多条记录的问题?

access|select|解决|问题|语句

如何解决 SELECT TOP 1语句竟然返回多条记录的问题?

 
 
 
简述:如何解决 SELECT TOP 1语句竟然返回多条记录的问题
 

 

问题:

如何解决 SELECT TOP 1语句竟然返回多条记录的问题?

SELECT TOP 9 title,id,hit FROM Article WHERE DATEDIFF('h',[ShowDateB],Now())>=0
可以正确显示前9条

SELECT TOP 9 title,id,hit FROM Article WHERE DATEDIFF('h',[ShowDateB],Now())>=0 ORDER BY hit DESC
就成了全部显示

???

只有4个值.很多是0

是不是这样不足九个就会全取出?

怎么解决呢???
在SQL Server就没有这种问题阿

 

回答:

再说一遍,JET SQL不是 T-SQL语句。
jet sql 会返回重复值,也就是说,一个表中如果 ORDER BY 的字段都是 0 ,一共有100条记录,即使你用SELECT TOP 1 来返回记录,也同样返回100条记录,因为 JET DB 无从在这100条记录里面判断先后次序,只能返回100条。要解决此问题可以建立一个自动编号字段(id),然后用
select top 1 a,id from tablename order by a,id

HTTP://ACCESS911.NET 站长收藏

时间: 2024-09-15 02:42:38

如何解决access 中 SELECT TOP 1语句竟然返回多条记录的问题?的相关文章

db2中的Select语句如何实现MSSql中Select Top n的语法功能?

问题描述 db2中的Select语句如何实现MSSql中Select Top n的语法功能? 解决方案 Select Top在不同数据库中的使用用法: 1. Oracle数据库 <CENTER><CCID_NOBR> SELECT * FROM TABLE1 WHERE ROWNUM<=N 2. Infomix数据库 SELECT FIRST N * FROM TABLE1 3. DB2数据库 SELECT * ROW_NUMBER() OVER(ORDER BY COL1

SQL Server对select语句返回多条记录给变量赋值时的处理情况

select|server|变量|语句 declare @user nvarchar(20)select @user='user1'use countme/*判断用户是否存在*/declare @userweek intselect @userweek=[week] from base where userid=@userselect @@rowcountif @@rowcount=0returnselect @userweek 最后的@userweek打印出来的结果就是记录用户名为user1的

php中通过数组进行高效随机抽取指定条记录的算法_php技巧

php使用数组array_rand()函数进行高效随机抽取指定条数的记录,可以随机抽取数据库中的记录,适合进行随机展示和抽奖程序. 该算法主要是利用php的array_rand()函数,下面看一下array_rand()函数的主要功能: array_rand-从数组中随机取出一个或多个单元 mixed array_rand(array $input[,int $num_req] ) array_rand()在你想从数组中取出一个或多个随机的单元时相当有用.它接受input作为输入数组和一个可选的

使用sys_refcursor返回多条记录在ADO.NET中该如何调用如此的存储过程?

问题描述 存储过程:createorreplaceproceduresp_Page(p_PageSizeint,--每页记录数p_PageNoint,--当前页码,从1开始p_SqlSelectvarchar2,--查询语句,含排序部分p_SqlCountvarchar2,--获取记录总数的查询语句p_OutRecordCountoutint,--返回总记录数p_OutCursoroutsys_refcursor)asv_sqlvarchar2(3000);v_countint;v_heiRow

mysql中select into from语句使用例子分析

表如下所示  代码如下 复制代码 SELECT * FROM `test_table_draw` WHERE `borough_id`>=10266 and `borough_id` <=12354 户型表 SELECT * FROM `test_table_pic` WHERE `borough_id`>=10266 and `borough_id` <=12354 相册表 创建一个备份表  代码如下 复制代码 CREATE TABLE IF NOT EXISTS `test_t

解决Access中分组报表的问题_Access

在Word中,大家对段落的对齐方式.缩进.段前.段后间距等属性都比较熟悉,但是,你是否注意到段落的另外一个非常重要的属性--大纲级别(如图1). 实际上,段落的大纲级别在很多地方都非常有用,下面我们就来详细了解一下它的作用和应用(注意:下面的操作都是在Word XP中进行的,其他版本请参考使用). 一.用大纲级别结合文档结构图快速定位 我们在Word中打开一篇文档,在菜单栏上选择"视图→文档结构图"(如图2),如果这篇文档已经设置好各级大纲级别,我们可以在左边的文档结构图中看见很多分好

在select语句中使用top的一些小技巧

It's well-known.Microsoft SQL Server 7.0增加了一个语句top,可以限制返回的记录数.但是在使用的时候,有时候会遇到一些问题.比如希望返回前三名的比分,但是第三名有并列的,使用select top 3 * from table order by score的话就只能返回三条记录,在这样的情况下,就可以使用select top 3 with ties * from table order by score还有,有的时候我不希望出现重复的记录,那么可以使用sel

:( 用多线程向Access中成批导入数据时,开始执行一段时间没问题,再后就保存失败了。

问题描述 用多线程向Access中成批导入数据时,开始执行一段时间没问题,再后就保存失败了.向Access中添加数据的语句没有错误,用SQL2K试过没有问题.得到在向获取Access添加数据时的错误为"未明确的错误".估计可能是添加数据时,Access成受不了了,所以才报错.但想想应该是有什么办法可以解决的.向Access添加数据的部分如下://保存数据到AccesspublicstringInfoSave(stringstrDBFile,string[]Info){try{strin

解决MySQL中无GROUP BY直接HAVING的问题

今天有同学给我反应,有一张表,id是主键,这样的写法可以返回一条记录:  代码如下 复制代码 "SELECT * FROM t HAVING id=MIN(id);" 但是只是把MIN换成MAX,这样返回就是空了:  代码如下 复制代码 "SELECT * FROM t HAVING id=MAX(id);" 这是为什么呢? 我们先来做个试验,验证这种情况. 这是表结构,初始化两条记录,然后试验:  代码如下 复制代码 root@localhost : plx 10