LIMIT 不适用于 UNION

LIMIT does not work with UNION

下面的代码有什么问题?

SELECT  first_name, last_name
FROM    employees
UNION ALL
SELECT  first_name, last_name
FROM    dependents
ORDER BY  last_name
LIMIT 6 OFFSET 1;

即使使用 LIMIT 的简单查询似乎也不起作用:

SELECT  first_name, last_name
FROM    dependents
ORDER BY  last_name
LIMIT 6 OFFSET 1;

Getting this error repeatedly: ORA-00933: SQL command not properly ended

我相信oracle不支持LIMIT。试试这个

ORDER BY last_name
OFFSET 1 ROWS FETCH NEXT 6 ROWS ONLY;

注意此语法支持 Oracle 12c

代码有问题的是 Oracle 不支持 limit。时期。最新版本支持 ANSI 标准 fetch first <n> rows only.

也许你打算:

SELECT e.*
FROM (SELECT e.*, ROW_NUMBER() OVER (ORDER BY last_name) as seqnum
      FROM (SELECT first_name, last_name FROM employees
            UNION ALL
            SELECT first_name, last_name
            FROM dependents
           ) e
      ORDER BY last_name
     ) e
WHERE seqnum BETWEEN 1 and 7;