wen_xudong7 2012-05-31 16:55
浏览 384
已采纳

oracle 求每列的最大值

test 表中有 num1、num2、num3 3个字段

第一列、第二列、第三列
1 1 1

2 -1 2

3 1 -1

-1 2 1

1 3 2

求每列 -1 之前的最大值

结果是:3、1、2

  • 写回答

10条回答 默认 最新

  • gongxuxuxuxux 2012-06-01 11:03
    关注

    ok了. 查询每列值为 -1的 前一排最近值, 如果该列中没有-1.则返回0.
    select t1.c1, t2.c2, t3.c3
    from (select nvl (min(c1),0) c1
    from test
    where rowid =

        (select max(rowid)
                  from test
                 where rowid < (select rowid from test where c1 = -1)) order by c1) t1,
    
       (select nvl (min(c2),0) c2
          from test
         where rowid = 
    
        (select max(rowid)
                  from test
                 where rowid < (select rowid from test where c2 = -1)) order by c2) t2,
    
       (select nvl (min(c3),0) c3
          from test
         where rowid = 
    
        (select max(rowid)
                  from test
                 where rowid < (select rowid from test where c3 = -1)) order by c3) t3
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(9条)

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?