SQL数据库中,如何只拿出最后一条纪录?(20分)

  • 主题发起人 主题发起人 studying
  • 开始时间 开始时间
S

studying

Unregistered / Unconfirmed
GUEST, unregistred user!
我的意思是想:不管什么情况,我只需要最后一条记录,仅此一条就可以了.
希望通过SQL语句实现.
不想先找出一大堆记录,再用Query.last;这样效率很低.
 
存储过程
 
如果你的数据库支持select first 1 field from table1那就没问题
 
首先一个概念,必须排序的结果集才有“最后一条”的概念。
Select * from table1 where indexfld=(select max(indexfld) from table1)
你给的分也太少了:(
 
to sanke:
我用的是D5+SQL Server7.在ADOQuery的SQL属性中加入
"select first 1 field from table1" 系统出错.是不是不支持?
to driver:
我数据库中的表采用日期作关键字,日期字段的类型为Char,好像不能采用您的方法?
PS:虽然分数少了点,但我是很真心的向各位大虾求教的,希望各位不要保留才好那
等小弟明日也成了大虾,一定多多报答!
 
先给表加一个自动索引ID,然后用
QUERY的ROCORD。COUNT的方法获取
记录的个数,最后用一条SELECT语句
SELECT * FROM TABLE WHERE ID=“**”
这样应该可以实现的我想
 
建一个自增字段 fid
select * from table where fid in(select max(fid) from table)
 
如果必须在表中加字段的话,问题当然就很简单了.就像各位说的那样.
可是如果不加是不是就没有好的实现办法?
我准备用ADOTable了,既方便又直接.您看呢?
 
ADOTable 可以直接实现你的要求?怎么设置呢?

可以试一下这条语句:
select top 1 *
from table1
order by fieldA desc,fieldX desc

fieldA 是按你的要求进行排序的字段,
fieldX 是 table1 中的主码,加上它是为了避免出现不可预测的结果。
desc 关键字让 table1 按倒序排序,这样 Top 1 * 获得的结果
就是最后一条记录了。
 
Select * form table1 where recordno=recordcount??????????????????????
 
用 ADOTable,做好连接,指定表名之后,在取记录的时候
ADOTable.last;移动记录指针不就行了?
 
zwhc的方法对!我曾经这样用过!
 
zwhc的方法对!
 
>>来自:studying 时间:00-10-13 16:25:03 ID:365011
>>用 ADOTable,做好连接,指定表名之后,在取记录的时候
>> ADOTable.last;移动记录指针不就行了?

这和 Query.last 有区别吗?你自己说的

>>不想先找出一大堆记录,再用Query.last;这样效率很低.
 
后退
顶部