oracle返回有多少行数据,Oracle 返回偶数个数据行

要求:

查询表中的数据个数为奇数个时,自动加一个空白行,返回偶数个数据;如果表中的数据为偶数个时,直接返回偶数的所有行。

一、在数据库中,新建一个表,如下:

create table MONTHSNUM

(

MONTHS NUMBER

)

二、新增一行数据;

insert into monthsnum values(1);

三、执行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)

返回结果:

0818b9ca8b590ca3270a3433284dd417.png

说明:如果数据行数为奇数时,补一个空白行,使其为行数为偶数。

四、再新增一行数据;

insert into monthsnum values(2);

五、再执行第三步的SQL

返回结果:

0818b9ca8b590ca3270a3433284dd417.png

说明:如果数据行数为偶数时,直接返回数据行的所有数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值