SQL - TOP、LIMIT 或 ROWNUM 子句

  • 简述

    SQLTOP子句用于从表中获取 TOP N 个或 X% 的记录。
    Note− 所有数据库不支持TOP 子句。例如 MySQL 支持LIMIT子句获取有限数量的记录,而 Oracle 使用ROWNUM命令来获取有限数量的记录。
  • 句法

    带有 SELECT 语句的 TOP 子句的基本语法如下。
    
    SELECT TOP number|percent column_name(s)
    FROM table_name
    WHERE [condition]
    
  • 例子

    考虑具有以下记录的 CUSTOMERS 表 -
    
    +----+----------+-----+-----------+----------+
    | ID | NAME     | AGE | ADDRESS   | SALARY   |
    +----+----------+-----+-----------+----------+
    |  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
    |  2 | Khilan   |  25 | Delhi     |  1500.00 |
    |  3 | kaushik  |  23 | Kota      |  2000.00 |
    |  4 | Chaitali |  25 | Mumbai    |  6500.00 |
    |  5 | Hardik   |  27 | Bhopal    |  8500.00 |
    |  6 | Komal    |  22 | MP        |  4500.00 |
    |  7 | Muffy    |  24 | Indore    | 10000.00 |
    +----+----------+-----+-----------+----------+
    
    以下查询是 SQL 服务器上的一个示例,它将从 CUSTOMERS 表中获取前 3 条记录。
    
    SQL> SELECT TOP 3 * FROM CUSTOMERS;
    
    这将产生以下结果 -
    
    +----+---------+-----+-----------+---------+
    | ID | NAME    | AGE | ADDRESS   | SALARY  |
    +----+---------+-----+-----------+---------+
    |  1 | Ramesh  |  32 | Ahmedabad | 2000.00 |
    |  2 | Khilan  |  25 | Delhi     | 1500.00 |
    |  3 | kaushik |  23 | Kota      | 2000.00 |
    +----+---------+-----+-----------+---------+
    
    如果您使用的是 MySQL 服务器,那么这是一个等效示例 -
    
    SQL> SELECT * FROM CUSTOMERS
    LIMIT 3;
    
    这将产生以下结果 -
    
    +----+---------+-----+-----------+---------+
    | ID | NAME    | AGE | ADDRESS   | SALARY  |
    +----+---------+-----+-----------+---------+
    |  1 | Ramesh  |  32 | Ahmedabad | 2000.00 |
    |  2 | Khilan  |  25 | Delhi     | 1500.00 |
    |  3 | kaushik |  23 | Kota      | 2000.00 |
    +----+---------+-----+-----------+---------+
    
    如果您使用的是 Oracle 服务器,则以下代码块具有等效示例。
    
    SQL> SELECT * FROM CUSTOMERS
    WHERE ROWNUM <= 3;
    
    这将产生以下结果 -
    
    +----+---------+-----+-----------+---------+
    | ID | NAME    | AGE | ADDRESS   | SALARY  |
    +----+---------+-----+-----------+---------+
    |  1 | Ramesh  |  32 | Ahmedabad | 2000.00 |
    |  2 | Khilan  |  25 | Delhi     | 1500.00 |
    |  3 | kaushik |  23 | Kota      | 2000.00 |
    +----+---------+-----+-----------+---------+