请高手指教指教,我的意思是这样的
比如我通过一些查询(就比如select * from table),查询出来的记录有10条,也就是1,2,3,4,5,6,7,8,9,10条
但是我想通过一个值来控制只取出其中的一部分,比如我只要其中的一半,我要的结果就是1,3,5,7,9,与此类推,这个“一半”是可以动态改变的,比如我想要其中的1/10,那显示就是1这条记录就可以了,
不知要怎样实现呢,谢谢

解决方案 »

  1.   

    你自己写存储过程去控制吧!
    用存储过程应好控制的,传递一个显示的信息进去作为参数
    如果非要用Delphi做的话,我想到的方法效率低且麻烦
    就是使用内存表,根据你的需要遍力取除数据放在内存表中,然后显示内存表.
      

  2.   

    如果用序列行号来做可能比较好做,但在SQL中自增序列号很麻烦,如果放在dbgrid中,应该能够实现。
      

  3.   

    select top 50  percent * from table
      

  4.   

    谢谢你的回答啊,这个查询是查前50%的记录啊,我想要查询的是平均的啊,比如我举例的,如果用select top 50  percent * from table会查询到1,2,3,4,5啊,还望指教,谢谢
      

  5.   

    //只考虑了极简单的情况,具体问题具体修改!
    //像你说的输入某参数,可使得到结果集,可用动态SQL实现,和分页存储过程比较类似CREATE TABLE #(ID int)
    INSERT # SELECT 1
    UNION ALL SELECT 2
    UNION ALL SELECT 3
    UNION ALL SELECT 4
    UNION ALL SELECT 5
    UNION ALL SELECT 6
    UNION ALL SELECT 7
    UNION ALL SELECT 8
    UNION ALL SELECT 9
    UNION ALL SELECT 10 
    SELECT ID
    FROM #
    WHERE ID % 2=0
      

  6.   

    如果没有规律,纯粹是随机取百分之多少的记录,用SQL语句就无法搞定,只能在程序中解决;有规律的话SQL语句是可以搞定的。
      

  7.   

    感觉就在SQL语句后面加WHERE 条件就可以了。想要什么就加什么。