用SQL如何得到最后N条记录?(100分)

  • 主题发起人 主题发起人 juanZ
  • 开始时间 开始时间
J

juanZ

Unregistered / Unconfirmed
GUEST, unregistred user!
用SQL如何得到最后N条记录?
 
要不要排序?
要排序的SQL如下
SELECT * FROM (
SELECT TOP 10 * FROM TAB ORDER BY -ID
) ORDER BY ID
 
可以用一个技巧:比如,要取最大的*,可以先倒排序,然后选top.
select top 100 * from Table order by ID desc.
 
ysai: 你的方法不能对Tab 更新啊,我原来就是这样向的,说是找不到表。

fansnaf: 安你的方法我就不问提这个问题了,譬如从小到大排序的,取出最后N条记录还是从小到大排序的
 
在子查询中用 “逆序”(order by),和你正常索引的顺序相反!
 
SELECT * FROM (SELECT TOP 10 * FROM TAB ORDER BY ID //desc 或asc
) ORDER BY ID //desc 或asc
加两次就可以改变顺序
 
SELECT * FROM TAB WHERE 字段 IN (SELECT TOP 10 字段 FROM TAB ORDER BY ID //desc 或asc
) ORDER BY ID //desc 或asc
 
这样吧:会比较慢,不过应该能够达到你的目的。
select * from where id in (select top 100 id from Table order by ID desc)
order by id
 
楼上各位: 用子表的方式是可以,但好像不能更新、添加数据啊
 
我以前总是用一个自动增加的种子来进行判断,但一断过滤后就不行了,关注,UP!
 
不要用dataset.append/insert来添加记录。直接用sql的insert。
 
peral: 我用的三层结构
 
用游标就轻松搞定了
 
你到底想要什么效果,以上的SQL绝对可以搞定
 
后退
顶部