嘿所有,所以我试图从表中选择每一行。
我知道如何使用带有子查询的MOD函数来执行此操作。但是我只想找到不使用内置函数MOD的解决方案。
任何想法或任何帮助将不胜感激。谢谢!
答案 0 :(得分:4)
您可以模拟mod()
函数(这是执行此操作的正确方法)。例如,要获得每第10行:
select t.*
from (select rownum as rn, t.*
from table t
) t
where rn - trunc(rn/10)*10 = 0;
答案 1 :(得分:1)
起点可以是分析函数NTH_VALUE。 但是,默认情况下,它将仅返回第9行,而不是每第9行。 也许你可以用一些子查询来实现它。
答案 2 :(得分:1)
将ROWNUM除以N - 如果它是一个整数,则接受它:
SELECT *
FROM (SELECT t.*, ROWNUM AS RN
FROM YOUR_TABLE t)
WHERE RN / 10 = TRUNC(RN / 10)
分享并享受。