zoukankan      html  css  js  c++  java
  • 从一个空表中获取N条数据

    我们就用例子来说明吧,一个消费记录表,这里面的记录的是用户的消费记录,这个时候有个要求,用户想知道从一个时间到另一个时间的消费记录,中间有的日期没有消费的也得出来,只不过数据都是0(当然我们项目中有这个要求啦^^),当拿到这个需求的时候一下子感觉无从下手了,因为我们平成的查询都是SELECT 数据 FROM DUAL WHERE 条件 这个时候符合条件也只是一条数据啊,如果是一个空表根本就查不到数据,这也是无从下手的原因,今天在群里问了一下,得到高手指点用CONNENT BY 来解决这个问题,于是做了一个例子作为记录,以后在遇到这样的问题就会了:

    SELECT 开始时间+ROWNUM-1 FROM DUAL CONNECT BY ROWNUM < 结束时间 - 开始时间

    今天用到了sql server 2008的类似上面的情况,于是把自己写出来的sql在这里保存一下,省得以后忘记了:

    with t (createtime,num)as
    (select GETDATE() createtime ,10 num
    union all
    select t.createtime-1,t.num-1 from (select GETDATE() createtime ,10 num) tem,t
    where t.createtime-1 > tem.createtime - tem.num
    )
    select * from t

    sql server 不像Oracle那么方便,还的自己构造,如果原来的表中有多条数据,那么这个递归出来的结果就不是我们想要的了,如:

    with t (createtime,num)as
    (select GETDATE() createtime ,10 num

    union all

    select GETDATE()-5 createtime ,5 num
    union all
    select t.createtime-1,t.num-1 from (select GETDATE() createtime ,10 num) tem,t
    where t.createtime-1 > tem.createtime - tem.num
    )
    select * from t

    目前还没有想出解决方案,自己也在测试中,先把这些记下来,以免以后再次用的时候还的去想,程序就是这样,一段时间不用很容易忘记的。

  • 相关阅读:
    注册页面
    JDBC操作MySQL数据
    音乐播放页面控制
    mysql知识点
    国内第一篇详细讲解hadoop2的automatic HA+Federation+Yarn配置的教程
    让自己变得更有钱
    看视频也能拿到月薪1万
    超人学院二期学员分享hadoop工作经验
    2013年吴超的个人总结
    国内最全最详细的hadoop2.2.0集群的MapReduce的最简单配置
  • 原文地址:https://www.cnblogs.com/andysd/p/3040377.html
Copyright © 2011-2022 走看看