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

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

  • 相关阅读:
    CSLA.Net 3.0.5 项目管理示例 业务基类 Project.cs
    为什么我要写博客
    LINQ 标准的查询操作符 过滤 where、index1、OfType
    LINQ 概述和演变
    sl中几个简单变量的获取
    Rails存储库从SVN转向Git
    showcase测试界面
    Silverlight读取xml
    向silverlight传递自定义参数
    RadRails1.0降临——增加Profiler、CallGraph Analyzer和Rails Shell等新特性
  • 原文地址:https://www.cnblogs.com/andysd/p/3040377.html
Copyright © 2011-2022 走看看