摘要:
在查询中,我们可以注意到,类似于"select xx from table where rownum 1)这样的查询是有正确含义的,而"select xx from table where rownum = n"这样的查询只在n=1的时候成立,"select xx from table where rownum n"(n1)这样的查询只能得到一个空集。另外"select xx from table where rownum 0"这个查询会返回所有的记录。这是为什么呢?原因就在于Oracle对rownum的处理上,rownum是在得到结果集的时候产生的,用于标记结果集中结果顺序的一个字段,这个字段被称为"伪数列",也就是事实上不存在的一个数列。它的特点是按顺序标记,而且是逐次递加的,换句话说就是只有有rownum=1的记录,才可能有rownum=2的记录。
阅读全文