如何在 sql 查询中实现条件 select?

How to implement conditional select in sql query?

如何从 table 中获取每 10 行,即第 10、20 等 但是如果 table 中的行少于 10 行,它应该获取最后一个行.

这可以是此问题中出现的此查询的高级形式 -

我做了这样的事情来选择每 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 );