如何从表中获取每 10 行,即第 10 行、第 20 行等,但如果该表中的行少于 10 行,它应该获取最后一行。
这可能是此问题中存在的此查询的高级形式 -如何选择第 10 名、第 20 名、第 30 名 ...另一个选择查询的结果行
我已经为选择每 10 行做了这样的事情 -
select case_id
from
(select case_id,rownum as seq
from table
where from = 'A' and to ='B'
order by ID
)
where mod(seq,10) = 0
但是,如果内部查询的结果少于 10 行,则它应该获取最后一行。
OBS: 数据库 - Oracle 12c
SELECT ColumnA,
ColumnB,
ColumnC
FROM (
SELECT ROWNUM rn,
COUNT(*) OVER ( ORDER BY NULL ) mx,
q.ColumnA,
q.ColumnB,
q.ColumnC
FROM (
SELECT ColumnA,
ColumnB,
ColumnC
FROM your_table
ORDER BY ColumnA
) q
)
WHERE MOD( rn, 10 ) = 0
OR ( mx = rn AND mx < 10 );