21TOP句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 | Lolita | 32 | Ahmedabad | 2000.00 | | 2 | shinty | 25 | Delhi | 1500.00 | | 3 | gang | 23 | Kota | 2000.00 | | 4 | Chaitali | 25 | Mumbai | 6500.00 | | 5 | Hardy | 27 | Bhopal | 8500.00 | | 6 | Komal | 22 | MP | 4500.00 | | 7 | Duffy | 24 | Indore | 10000.00 | +----+----------+-----+-----------+----------+
次のクエリは、CUSTOMERSテーブルから上位3レコードを抽出するSQLサーバーの例です。
SQL> SELECT TOP 3 * FROM CUSTOMERS;
これは、次のようになります
+----+---------+-----+-----------+---------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+---------+-----+-----------+---------+ | 1 | lolita | 32 | Ahmedabad | 2000.00 | | 2 | shinty | 25 | Delhi | 1500.00 | | 3 | gang | 23 | Kota | 2000.00 | +----+---------+-----+-----------+---------+
MySQLサーバを使用している場合は、これと同等の例があります。
SQL> SELECT * FROM CUSTOMERS LIMIT 3;
これは、次のようになります –
+----+---------+-----+-----------+---------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+---------+-----+-----------+---------+ | 1 | lolita | 32 | Ahmedabad | 2000.00 | | 2 | shinty | 25 | Delhi | 1500.00 | | 3 | gang | 23 | Kota | 2000.00 | +----+---------+-----+-----------+---------+
Oracleサーバーを使用している場合
SQL> SELECT * FROM CUSTOMERS WHERE ROWNUM <= 3;
これは、次の結果になります
+----+---------+-----+-----------+---------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+---------+-----+-----------+---------+ | 1 | lolita | 32 | Ahmedabad | 2000.00 | | 2 | shinty | 25 | Delhi | 1500.00 | | 3 | gang | 23 | Kota | 2000.00 | +----+---------+-----+-----------+---------+