从SQL

时间:2016-02-20 20:34:36

标签: sql oracle

我正在尝试从默认情况下获得2个最低工资持有者的信息" scott"表。

这是我正在尝试的查询:

SELECT TOP 2 * FROM emp ORDER BY sal ASC

但是我收到了这个错误:

  

ORA-00923:未找到FROM关键字

截图:

enter image description here

3 个答案:

答案 0 :(得分:1)

在最新版本的Oracle中,您可以使用ANSI标准:

SELECT emp.*
FROM emp
ORDER BY sal ASC
FETCH FIRST 2 ROWS ONLY;

旧版本:

SELECT e.*
FROM (SELECT emp.*
      FROM emp
      ORDER BY sal ASC
     ) e
WHERE rownum <= 2;

答案 1 :(得分:0)

您可以在Oracle中使用ROWNUM来获取查询结果的前两行。

SELECT EMP1.* FROM (SELECT * FROM EMP ORDER BY SAL ASC) EMP1 WHERE ROWNUM < 3;

答案 2 :(得分:0)

  • TOP X由SQL Server使用
  • Oracle和DB2使用Fetch优先 (rownum也可在Oracle中获得)
  • mysql使用限制
  • 许多人还可以在子查询中使用窗口函数(ROW_NUMBER())。

你想要

select * from emp ORDER BY sal ASC
fetch first 2 rows only