Oracle返回偶数个数据行

来源:Oracle认证    发布时间:2012-11-12    Oracle认证视频    评论

要求:
   
   查询表中的数据个数为奇数个时,自动加一个空白行,返回偶数个数据;如果表中的数据为偶数个时,直接返回偶数的所有行。
   
   一、在数据库中,新建一个表,如下:
   
   [sql]
   

create table MONTHSNUM     (     MONTHS NUMBER     )


   
   二、新增一行数据;
   
   [sql]
   

insert into monthsnum values(1);


   
   三、执行SQL:
   
   [sql]
   
   

select *           from (select aa.*, mod(bb.countnum, 2) num           from (select a.*, rownum rownum2           from (select rownum rownum1, t.months           from monthsnum t           union           select to_number('') rownum1, to_number('') months           from dual) a) aa,           (select count(*) + 1 countnum from monthsnum t) bb           order by aa.rownum2)           where rownum <= (case when num = 0 then rownum else           (select count(*) countnum from monthsnum t) end)


   
   返回结果:
   
   说明:如果数据行数为奇数时,补一个空白行,使其为行数为偶数。
   
   四、再新增一行数据;
   
   [sql]
   
   insert into monthsnum values(2);
   
   五、再执行第三步的SQL
   
   返回结果:
   
   说明:如果数据行数为偶数时,直接返回数据行的所有数据。

上一篇: Oracle 10g RAC下如何删除listener
下一篇: 在Solaris10下安装oracle

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答