SQL小白,请教大家个语句的写法好么?

  • 利露
    select top 100 * from prize3days order by pr_publicDate desc

    本帖最后由 利露 于 2012-3-15 11:24 通过手机版编辑
  • C
    Crusher
    order by pr_publicDate desc
    然后取第一条
  • 木月
    这个,利露大大,我没看懂啥意思,不过只用一个TOP,似乎和我说的有点不一样
  • 利露
    前100条,当然这个条数你可以自己调整
  • 木月
    可是连续性没办法判断啊,还是说用几条SQL语句来完成这个功能?
  • H
    HHH2000
    oracle有top关键字么
  • 伸手党
    按时间排序么....
    oracle 不支持top的..
    可以排序了用rownum <多少来获得最近的数据
    反正数据取出来你还要处理不是..

    [本帖最后由 伸手党 于 2012-3-15 11:37 编辑]
  • a
    arcwater
    用rownum
  • d
    dirlee
    利露 的应该可用了 , 按时间排取前X条记录
  • 木月
    处理是肯定要处理的,不过因为要分页,所以最好还是一条SQL能解决问题

    按时间排序没办法判断是不是连续啊,如果不连续了就查最近两天以内发布的,如果还是没有,那就不统计进来
  • 伸手党
    select *
    from prize3days
    order by pr_publicDate desc

    如果这个表的内容包含多个不同商品的价格的话 还要将商品类型 grouy by一下
  • 木月
    说错了,应该说现在怎么实现这个:
    如果不连续了就查最近两天以内发布的,如果还是没有,那就不统计进来,用decode可以么?
  • 伸手党
    要分页就加上 rownum< 一页的行数 就可以了.
  • 利露
    那between 下今天和昨天的日期就可以啦
  • 木月
    嗯,谢谢大家了,和我说的有点不一样,我先写吧,写出来再请大家看看,祭扫之后奉上,谢谢大家
  • a
    aurawing
    看你们一本正经的讨论技术问题还真是不习惯
  • 沉默の狙击手
    select *
    from prize3days a
    where a.pr_publicdate in ( select max(b.pr_publicdate)
    from prize3days b
    where a.prid = b.prid)

    用内嵌套就可以了。如果你的prid相对于表的数据记录来说比例不算高的话。在prid这个column上建个索引。可以提高你的查询效率。
  • 木月
    补充了一下表的数据……
  • O
    Ominislash
    看不懂了~~~
  • 木月
    呵呵,谢谢了,这个表设计的比较无语,我按照兄弟你的语句取回来之后又做了一些判断和组装,已经成功了,谢谢了
  • 惆怅的蚂蚁
    oracle里没用过top
  • 1
    11508721
    "发布时间(pr_publicDate)不连续的话" 什么意思

    sql贴出来啊
  • 沉默の狙击手
    你的prid是每次提出价格的时候都变化,还是同一个prid不变但是会有一对多的时间
  • h
    hodei1
    这个不是按发布时间排倒叙就行了?
  • r
    radawaysp
    @radawaysp mark