Sql 两个查询与第一个查询结果集的并集,在Oracle中获得前十个行数

Sql 两个查询与第一个查询结果集的并集,在Oracle中获得前十个行数,sql,oracle,oracle10g,union,rownum,Sql,Oracle,Oracle10g,Union,Rownum,我希望将两个查询与第一个查询结果集合并,以获得Oracle中的前十行。 例子: 例如,如果第一个查询有10行,最大rownum为10。我希望第二个查询rownum在union的结果中从11开始。如果第一个查询中的行数不固定,该怎么办?我们是否使用max?换句话说,您希望确保联合结果集的前十行来自联合左侧的子查询?rownum是一个伪列,所选行取决于您的排序顺序,而不是说…和rownum SELECT * FROM ( SELECT * FROM t

我希望将两个查询与第一个查询结果集合并,以获得Oracle中的前十行。 例子:
例如,如果第一个查询有10行,最大rownum为10。我希望第二个查询rownum在union的结果中从11开始。

如果第一个查询中的行数不固定,该怎么办?我们是否使用max?换句话说,您希望确保联合结果集的前十行来自联合左侧的子查询?rownum是一个伪列,所选行取决于您的排序顺序,而不是说…和rownum
SELECT  *
FROM    (
        SELECT  *
        FROM    table1
        ORDER BY
                col1
        )
WHERE   rownum <= 10
UNION ALL
SELECT  *
FROM    (
        SELECT  *, rownum AS rn
        FROM    (
                SELECT  *
                FROM    table2
                ORDER BY
                        col2
                )
        )
WHERE   rn > 10