wallimn 2012-07-26 09:57
浏览 295
已采纳

查询SQL求解

建个测试表:
create table t_num(id integer,num number);
insert into t_num values(1,100);
insert into t_num values(2,90);
insert into t_num values(3,0);
insert into t_num values(4,10);
insert into t_num values(5,20);
insert into t_num values(6,50);
insert into t_num values(7,0);
insert into t_num values(8,10);
insert into t_num values(9,20);
commit;

表内容如下:
SQL> select * from t_num;
        ID        NUM
---------- ----------
         1        100
         2         90
         3          0
         4         10
         5         20
         6         50
         7          0
         8         10
         9         20

要求:记录按顺序显示,但只显示最后一个NUM为0记录后面的记录(不显示0记录)。这样一个查询SQL该如何写。数据库为Oracle数据库。一般情况下记录不多。


想了一个办法,不太好,有没有人有更好的办法?
select id,num from (
    select id,num,
         sum(case when num=0 then 0 else 1 end) over(order by id desc rows between unbounded preceding and 0 following)
         - row_number() over (order by id desc) judge_code
    from t_num
) where judge_code=0 order by id


  • 写回答

1条回答 默认 最新

  • iteye_7115 2012-07-26 10:46
    关注

    select *
    from t_num t
    where t.id > (select max(id) from t_num tn where tn.num = 0);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 通信专业本科生论文选这两个哪个方向好研究呀
  • ¥50 我在一个购物网站的排队系统排队,这个排队到号后重新定向到目标网站进行购物,但是有技术牛通过技术方法直接跳过排队系统进入目标网址购物,有没有什么软件或者脚本可以用
  • ¥15 ios可以实现ymodem-1k协议 1024字节传输吗?
  • ¥300 寻抓云闪付tn组成网页付款链接
  • ¥15 请问Ubuntu要怎么安装chrome呀?
  • ¥15 视频编码 十六进制问题
  • ¥15 unity terrain打包后地形错位,跟建筑不在同一个位置,怎么办
  • ¥15 uniapp实现如下图的图表功能
  • ¥15 u-subsection如何修改相邻两个节点样式
  • ¥30 vs2010开发 WFP(windows filtering platform)