【发布时间】:2015-09-22 06:31:28
【问题描述】:
平台:Windows 7 x-64 数据库:Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit。
Oracle row_limiting_clause 如何计算行数| PERCENT 行的百分比适用于 Oracle 12c 吗?
Oracle row_limiting_clause 行为异常。
在下面的代码中,表“fetch_test”有 10 行
案例 1
当使用row_limiting_clause 获取前 0.5 行时,我只得到,
no rows selected
案例 2 当仅对前 5% 行使用 row_limiting_clause 子句时,我得到 p>
1 row as output.
案例 3 当仅对前 1% 行使用 row_limiting_clause 子句时,我得到 p>
1 row as output.
这意味着案例 1!=案例 2 [0.5!=0.5(10 行的 5%)]
SQL> select * from fetch_test;
COL1 COL2
---- ----
1 A
2 B
3 C
4 D
5 E
6 F
7 G
8 H
9 I
10 J
10 rows selected.
案例一:
SQL> select col1 from fetch_test
2 fetch first 0.5 rows only;
no rows selected
案例2:
SQL> select col1 from fetch_test
2 fetch first 5 percent rows only;
COL1
----
1
1 row selected
案例3:
SQL> select col1 from fetch_test
2 fetch first 1 percent rows only;
COL1
----
1
1 row selected
Oracle 文档有什么要说的,
如果行数包括小数,则小数部分将被截断。如果 行数为 NULL,则返回 0 行 "source"
这解释了案例 1,但我在上面的示例中找不到案例 2 和 3 的可能解释。 任何帮助将不胜感激。
【问题讨论】:
-
它可能会四舍五入以获得百分比的行数。文档很清楚,由于截断,0.5 被视为 0。所以,这两种情况根本不是一回事。
-
Thanks.Nice Guess,但我也认为,但在我发现的文档或文章中没有提到任何地方,百分比将被四舍五入。
标签: sql database oracle analytics oracle12c