你能一条SQL搞定吗? 根据日期从数据库中取11条数据,比如日期为2007-11-06 得到的数据应该为11-01----11-11。但如果11-06前的数据不够5条的话就得向下多取一条(11-02------11-12)反之,向下的数据不够就向上取,如果向上向下都不够,那也没办法,取出所有就是了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 试试看 ..mydate 为你的日期类型字段, enterdate 为你的输入日期.select * from ( select * from tablename tt where tt.mydate > = to_date(&enterdate,'yyyy-mm-dd') order by tt.mydate )zz where rownum <= 11; 楼上的这条SQL不行呀,只能取到enterdate之后的,我要得到的数据是以些日期为中心取两头的数据,一共取11条。 我想说到这个份子上,也不需要我写出SQL了吧。 分页用的吧我倒觉得如果哪边不够的话不需要用另一边来补,没这必要SQL还真不会写,在程序里能处理的话就到程序里处理好了 TO bjt_:你这样的做法,会要求他的数据都是连续的。还要用到程序的判断,不是一个很好的方法。添加一个辅助的列(上面提到过),我觉得是不错的方法。 简单前5天后5天union前5到10天union后5到10天最后包一个rownum <= 11 1。需要的话,就用(按照日期的逆序,选出小于输入日期的前5条,UNION按照日期的顺序,选出大于等于输入日期的前11条,)里面选取11条(按照日期的顺序)2。不需要的话,就看上面的解释吧,都可以做到。 SELECT *FROM (SELECT *, Row_Number() over (PARTITION BY Sign(date_col - SYSDATE) ORDER BY Abs(date_col - SYSDATE)) AS rn FROM table1)WHERE rn<=5 linux下安装oracle出错了 各位大神 小弟求助!! 什么是OS备份? Oracle存储过程中的参数名与表名相同,请问如何处理? 为什么我说segment就是存放一个object的地方,那个培训老师却说这是错的呢? 关于带参数的脚本文件,求教! 各位高手,下面的存储过程错在哪了?解决马上散分,先谢谢了 请教大家:关于ORACLE的疑问 上海建坤信息技术有限责任公司招聘软件工程师 难题!如何用ado远程连接oracle 关于建立异地数据库的视图 是否可以直接在存储过程中做sql语句的查询——求指教
select *
from (
select *
from tablename tt
where tt.mydate > = to_date(&enterdate,'yyyy-mm-dd')
order by tt.mydate
)zz
where rownum <= 11;
我倒觉得如果哪边不够的话不需要用另一边来补,没这必要
SQL还真不会写,在程序里能处理的话就到程序里处理好了
你这样的做法,会要求他的数据都是连续的。还要用到程序的判断,不是一个很好的方法。添加一个辅助的列(上面提到过),我觉得是不错的方法。
前5天后5天
union
前5到10天
union
后5到10天最后包一个rownum <= 11
(
按照日期的逆序,选出小于输入日期的前5条,
UNION
按照日期的顺序,选出大于等于输入日期的前11条,
)
里面选取11条(按照日期的顺序)2。不需要的话,就看上面的解释吧,都可以做到。
FROM
(SELECT *,
Row_Number() over (PARTITION BY Sign(date_col - SYSDATE) ORDER BY Abs(date_col - SYSDATE)) AS rn
FROM table1)
WHERE rn<=5