TECH I.S.

SQL TOP、LIMIT、FETCH FIRSTまたはROWNUM句


SQL SELECT TOP句

SELECT TOP句を使用して、返すレコードの数を指定します。 SELECT TOP句は、数千のレコードを持つ大きなテーブルで役立ちます。多数のレコードを返すと、パフォーマンスに影響を与える可能性があります。

注:すべてのデータベース システムが SELECT TOP句をサポートしているわけではありません。
MySQL は、限られた数のレコードを選択するための LIMIT句をサポートしていますが、OracleFETCH FIRST n ROWS ONLYおよびROWNUMを使用します。

SQL Server/MS Access構文

SELECT TOP <em>number</em>|<em>percent</em> <em>column_name(s)</em> FROM <em>table_name </em>WHERE <em>condition</em>;

MySQL構文

SELECT <em>column_name(s)</em> FROM <em>table_name </em>WHERE <em>condition</em> LIMIT <em>number</em>;

Oracle 12構文

SELECT <em>column_name(s)</em> FROM <em>table_name </em>ORDER BY <em> column_name(s)</em> FETCH FIRST <em>number</em> ROWS ONLY;

古いOracle構文

SELECT <em>column_name(s)</em> FROM <em>table_name</em> WHERE ROWNUM <= <em>number</em>;

古いOracle構文(ORDER BYを使用)

SELECT * FROM (SELECT <em>column_name(s) </em>FROM <em>table_name</em> ORDER BY <em>column_name(s)</em>) WHERE ROWNUM <= <em>number</em>;



デモデータベース

以下は、Northwindサンプルデータベースの"Customers"テーブルからの選択です。

顧客ID

顧客名

連絡先

住所

郵便番号

1

アルフレッド・フッターキステ マリア・アンダース オベレ通り57 ベルリン 12209 ドイツ
2 アナ・トルヒーヨ サンドイッチとアイスクリーム アナ・トルヒーヨ コンスティトゥシオン通り2222番地 メキシコDF 05021 メキシコ
3 アントニオ・モレノ・タケリア アンソニー・モレノ マタデロス 2312 メキシコDF 05023 メキシコ
4

アラウンドホーン トーマス・ハーディ 120 ハノーバー スクエア ロンドン WA1 1DP イギリス
5 バーグルンドのスーパーマーケット クリスティーナ・ベルグルンド ベルグヴスヴェーゲン8 ルレオ S-958 22 スウェーデン

SQL TOP、LIMIT、およびFETCH FIRSTの例

次のSQLステートメントは、"Customers"テーブル(SQL Server/MS Accessの場合)から最初の3つのレコードを選択します。

SELECT TOP 3 * FROM Customers;

自分で試してみる(開発準備中)»

次のSQLステートメントは、MySQLの同等の例を示しています。

SELECT * FROM Customers LIMIT 3;

自分で試してみる(開発準備中)»

次のSQLステートメントは、Oracleの同等の例を示しています。

SELECT * FROM Customers FETCH FIRST 3 ROWS ONLY;

SQL TOP PERCENTの例

次のSQLステートメントは、"Customers"テーブル(SQL Server/MS Accessの場合)からレコードの最初の50%を選択します。

SELECT TOP 50 PERCENT * FROM Customers;

自分で試してみる(開発準備中) »

次のSQLステートメントは、Oracleの同等の例を示しています。

SELECT * FROM Customers FETCH FIRST 50 PERCENT ROWS ONLY;

WHERE句を追加する

次のSQLステートメントは、国が "Germany" (SQL Server/MS Accessの場合)である "Customers" テーブルから最初の3つのレコードを選択します。

SELECT TOP 3 * FROM Customers WHERE Country='Germany';

自分で試してみる(開発準備中) »

次のSQLステートメントは、MySQLの同等の例を示しています。

SELECT * FROM Customers WHERE Country='Germany' LIMIT 3;

自分で試してみる(開発準備中) »

次のSQLステートメントは、Oracleの同等の例を示しています。

SELECT * FROM Customers WHERE Country='Germany' FETCH FIRST 3 ROWS ONLY;


プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細