Sql-top-clause
提供:Dev Guides
SQL-TOP、LIMITまたはROWNUM句
SQL TOP 句は、テーブルからTOP N数またはXパーセントのレコードをフェッチするために使用されます。
注-すべてのデータベースは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 |
+----+----------+-----+-----------+----------+
次のクエリは、CUSTOMERSテーブルから上位3レコードをフェッチするSQLサーバーの例です。
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 |
+----+---------+-----+-----------+---------+