董松建 2017-02-22 07:30 采纳率: 33.3%
浏览 1248

oracle 多字段排序,取连续的某个区

按a,b,c三个字段排序,再取某两条记录中间的全部记录。

假设 a,b,c全是数值型。我想取 (a,b,c)=(1,3,1) 和 (a,b,c)=(4,1,2)这两条记录之间的记录。

where (a between 1 and 4) and (b between 3 and 1) and (c between 1 and 2)类似这样的答案就别来添乱了。不信的话自己试试,一条记录也不可能返回。

我现在用的是 where (a >1 and a3) or (a=1 and b=3 and c>1) or (a=4 and b<1) or ( a=4 and b=1 and c<2)
但是如果条件字段再多的话,where会很长。请问有没有什么高大上一点的写法。

  • 写回答

2条回答 默认 最新

  • golden_river 2017-02-22 08:16
    关注

    用rownum 试试?

    评论

报告相同问题?

悬赏问题

  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同