SQL-TOP、LIMIT、またはROWNUM句
SQL TOP 句は、テーブルからTOPN番号または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 |
+----+---------+-----+-----------+---------+