表结构是这样TimeField,groupField
其中TimeField 是表示时间的字段,groupField表示分类的字段
我要查询出TimeField 中距离现在时间最近的记录(该时间是比sysdate大的时间),同时groupField不为'record1'的记录但是要把比TimeField 中比当前时间小的记录和groupField属于'record1'的记录都列在最后;比如
TimeField,groupField
8:30 record1
8:31 record2
9:30 record1
9:31 record2
假如当前查询时间是8:35
查询结果是
9:31 record2
8:30 record1
8:31 record2
9:30 record1请问有办法吗?
其中TimeField 是表示时间的字段,groupField表示分类的字段
我要查询出TimeField 中距离现在时间最近的记录(该时间是比sysdate大的时间),同时groupField不为'record1'的记录但是要把比TimeField 中比当前时间小的记录和groupField属于'record1'的记录都列在最后;比如
TimeField,groupField
8:30 record1
8:31 record2
9:30 record1
9:31 record2
假如当前查询时间是8:35
查询结果是
9:31 record2
8:30 record1
8:31 record2
9:30 record1请问有办法吗?
解决方案 »
- linux环境 在没有安装Oracle的情况下怎么配置Oracle监听?
- oracle中order by后面用case when的问题
- 暂时没思路
- 程序问题
- 关于监听的问题
- 根据用户输入范围 将记录分类的问题
- oracle导入问题
- 求助:oracle 11g安装报错
- 我用表b中的c_csrq(date型,“1949-10-19”),更新另一个表a中的dcsrq(date型),变成了“2049-10-19”。
- Oracle中如何获得指定用户模式下,那些表被操作(insert/update/delete)过?
- 优化查询问题:一个简单的表在日期上增加索引后查询反而边慢?
- Statspack 如何知道一个stats$sqltext中的SQL是什么时候运行的?
select min(TimeField),'record2' from 表 where TimeField>sysdate and groupField<>'record1'
union all
select * from 表 where TimeField <> (select min(TimeField) from 表 where TimeField>sysdate and groupField<>'record1')
SELECT timefield, groupfield FROM tabel1
order by case when timefield>sysdate and groupfield<>'record1' then 0 else 1 end