sql 取数据表最后20条记录,顺序排列

mickeylelele 2009-05-31 09:01:14
我知道这个:select top 20* from 表 order by id desc,但得出的后10条记录是倒序排列的,我希望得出结果之后,仍然顺序排列,如何写sql语句?
...全文
692 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
mickeylelele 2009-06-03
  • 打赏
  • 举报
回复
谢谢大家,cxdbgrid这个我还没试用呢,到时如果要用这个控件,还要麻烦大家指导了!
DreamMan81 2009-06-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sz_haitao 的回复:]
SQL codeselect * from (
select top 20* from 表 order by id desc
) a
order by id
[/Quote] 呵呵,支持
cmdream 2009-05-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sz_haitao 的回复:]
SQL codeselect * from (
select top 20* from 表 order by id desc
) a
order by id
[/Quote]
  

UP
yunzm_wang 2009-05-31
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 mickeylelele 的回复:]
恩,select * from (select top 20* from 表 order by id desc)a order by id ,这种加a的好使。
但是在我添加数据、修改数据或作废数据时,都弹出错误“对象名zlb_zlpdxt...a”无效。
这怎么办啊?
我用的是DBEDdit控件来进行添加修改的,
就是query.edit;query.post;post的时候就弹出错误。
[/Quote]
手工修改一下,连接QUERY的UpdateSQL控件中的SQL语句就可以了。
mickeylelele 2009-05-31
  • 打赏
  • 举报
回复
还有其他方法吗?要改太麻烦了!!!!!!
阿三 2009-05-31
  • 打赏
  • 举报
回复
别用dbedit控件了,都改成sql语句来控件吧
mickeylelele 2009-05-31
  • 打赏
  • 举报
回复
在sql中用这个语句查询,查询出来之后,手动删除数据也同样出现这个错误!!!
mickeylelele 2009-05-31
  • 打赏
  • 举报
回复
恩,select * from (select top 20* from 表 order by id desc)a order by id ,这种加a的好使。
但是在我添加数据、修改数据或作废数据时,都弹出错误“对象名zlb_zlpdxt...a”无效。
这怎么办啊?
我用的是DBEDdit控件来进行添加修改的,
就是query.edit;query.post;post的时候就弹出错误。
yct0605 2009-05-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 SuperTitan001 的回复:]
select * from (select top 20* from 表 order by id desc) order by id
[/Quote]
先倒序取出,然后正序排列。
阿三 2009-05-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sz_haitao 的回复:]
SQL code
select * from (
select top 20* from 表 order by id desc
) a
order by id


[/Quote]
up
delphi_911 2009-05-31
  • 打赏
  • 举报
回复
select * from (select top 20* from 表 order by id desc) order by id

======= 就这样。
SuperTitan001 2009-05-31
  • 打赏
  • 举报
回复
select * from (select top 20* from 表 order by id desc) order by id
haitao 2009-05-31
  • 打赏
  • 举报
回复
select * from (
select top 20* from 表 order by id desc
) a
order by id
支持中文哦 2009-05-31
  • 打赏
  • 举报
回复
数据库的top-n分析
sqlserver直接支持top关键字,不过从上开始取,取后面的就嵌套一层查询。
oracle不支持支持top关键字,不过提供rownumber,更灵活,嵌套一层查询就可以实现。
SuperTitan001 2009-05-31
  • 打赏
  • 举报
回复
有一个办法或许不用改程序

用cxdbgrid代替dbgrid

语句还可以用select top 20* from 表 order by id desc

不过cxdbgrid有个功能,可以按照你指定的列排序,你再反过来排一次序就可以了
mickeylelele 2009-05-31
  • 打赏
  • 举报
回复
关键我的程序已经接近尾声了,你让我把控件全改成edit,用语句来写,insert就好多语句啊!!!!
没法想象!
7年 2009-05-31
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 mickeylelele 的回复:]
还有其他方法吗?要改太麻烦了!!!!!!
[/Quote]
用edit不麻烦的。
edit.text:=adoquery.fieldbyname('列名').asstring;
修改的时候控制SQL语句就好了。

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧