sql - SELECT 语句返回 ORA-00933 : SQL command not properly ended

标签 sql oracle

我有以下 SQL 模式:

Create table Employee (Id int, Salary int);
Truncate table Employee;

insert into Employee (Id, Salary) values ('1', '100');
insert into Employee (Id, Salary) values ('2', '200');
insert into Employee (Id, Salary) values ('3', '300');

并对数据库执行以下查询:

SELECT Salary as SecondHighestSalary
FROM Employee
ORDER BY Salary
    OFFSET 1 ROWS FETCH FIRST 1 ROWS ONLY;

它适用于 Oracle XE 18,但在 leetcode.com 上(我不知道他们运行的是哪个版本的 Oracle)它返回以下错误:

ORA-00933: SQL command not properly ended

我做错了什么?

最佳答案

错误消息表明您使用的版本低于 Oracle 12c(很可能是 Oracle 11g XE)。

OFFSET FETCH 是在版本 12c 中引入的。您可以通过执行以下操作轻松检查它:

select * from V$VERSION;

SELECT Salary as SecondHighestSalary
FROM Employee
ORDER BY Salary
    OFFSET 1 ROWS FETCH FIRST 1 ROWS ONLY;
-- ORA-00933: SQL command not properly ended

db<>fiddle

关于sql - SELECT 语句返回 ORA-00933 : SQL command not properly ended,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56303227/

相关文章:

java - 当 where 子句条件可以为 null 时更新 SQL

sql - 如何在postgis中从另一个包含field_ID和lat long point的表中创建一个带有几何多边形和field_ID的表

sql - mysql按字母顺序获取表列名

sql - 如何根据条件生成列的范围

oracle - 我可以在调用同一过程后将 PL/SQL 过程删除到匿名 block 中吗?

oracle - 使用内部连接在 oracle 中获取特定列值计数

sql - 将表中的多行分组到列中

sql - 通过分组累积先前的行

c# - 放宽数据表适配器的约束

java - Oracle SQL 偏移行数