毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 数据库 >> 正文

如何实现SQl查询一定数量的语句

更新时间:2012-7-9:  来源:毕业论文

我有一个表table1 “time,value”只有这两列。如果我想实现如下功能,该如何查询?
如果记录条数小于100,则返回所有记录。若记录条数大于100,例如200,则隔一个取一条记录。
查询中我不知道有多少条结果,所以也不知道到底应该隔多少个取一个记录。
不知道这样可不可以用查询语句实现?

IF ( SELECT COUNT(*)
     FROM   table1
   ) < 100
    SELECT  *
    FROM    table1
ELSE
    BEGIN
    ;
        WITH    tmp
                  AS ( SELECT   * ,
                                rn = ROW_NUMBER() OVER ( ORDER BY GETDATE() )
                       FROM     table1
                     )
            SELECT  *
            FROM    tmp
            WHERE   rn % 2 = 1
    END

declare @Total int
select @Total=COUNT(1) from tb
if @Total<=100
begin
    select * from tb
end
else
begin
    ;with t
    (
        select
            px=row_number()over(order by (select 1)),
            *
        from
            tb
    )
    select
        [time],
        value
    from
        t
    where
        px%2=1
end
建议还是直接在程序中实现。

比如在C语句中打开这个 select * from table1 ,可以先得到记录总数N,然后根据你的定义,算出间隔为或0,或1,或2。得到间隔X。
然后循环处理你的记录集,当 i++ % X ==0 的时候就输出记录即可。

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。