回 帖 发 新 帖 刷新版面

主题:查询排序取前N条记录问题。请大家来帮帮忙。非常感谢大家

想通过查询语句要实现以总分从大到小的排列,取前N条记录。
如果[b]记录号不在top的取值范围内[/b],记录就无法显现,请各帮忙怎样才能解决这样的问题。非常感谢大家

SELECT top 3 xm as 姓名, zcj as 总分  from aaa ORDER BY 总分 DESC

记录号             姓名            总分
        1                王娟              570
        2                李涛              489
        3                黎明              578
        4                刘淇              477
        5                张亮              568

运行结果是 只显示出两条记录号小于3的记录,

  记录号             姓名             总分       
        3                黎明              578
        1                王娟              570

回复列表 (共4个回复)

沙发

VFP 9.0 SP2汉化版结果正确!

板凳

[quote]VFP 9.0 SP2汉化版结果正确![/quote]
我现在的运行结果是正确的,但是如果记录号大于我设置的TOP N数值时就无法显示,我主要是想解决这个问题,不过还是非常感谢您的帮助

3 楼

[quote][quote]VFP 9.0 SP2汉化版结果正确![/quote]
我现在的运行结果是正确的,但是如果记录号大于我设置的TOP N数值时就无法显示,我主要是想解决这个问题,不过还是非常感谢您的帮助[/quote]
不明白你的意思,对于SQL命令来说,记录号是无关的!

4 楼

SELECT top 3 xm as 姓名, zcj as 总分  from aaa ORDER BY 总分 DESC
我看还是那个top3的问题,我不再探讨那个记录号不在top的取值范围内,记录就无法显现的问题形成的原因.
只考虑解决问题的方法,虽然不一定是好的简便的方法.
其实分两条语句肯定能解决问题

SELECT xm as 姓名, zcj as 总分  into curs curs_aaa from aaa ORDER BY 总分 DESC
SELECT top 3 *  from curs curs_aaa

我来回复

您尚未登录,请登录后再回复。点此登录或注册