【SQL】SELECT文で取得件数を指定して検索する(MySQL、Oracle、SQLServer)

-
カテゴリ:
- DB
DBを使っていて、テーブルの件数が多いけど中の構造をちょっと見てみたいケースがよく起こります。
そんな時便利なのが、SELECT文を使って「先頭から上位数件を取得する」方法です。
今回は自分が普段使っているMySQL、Oracle、SQLServerでの方法をここにメモしておきます。
先頭から上位数件のレコードを検索する
検索対象のサンプルとして以下のテーブルを使います。
テーブル名:SAMPLE_TABLE
ID | NAME | AGE | |
---|---|---|---|
1 | 太郎 | 39 | taro@sample.com |
2 | 次郎 | 27 | jiro@sample.com |
3 | 三郎 | 13 | sub@sample.com |
4 | 絵美 | 30 | emi@sample.com |
5 | 美香 | 20 | mika@sample.com |
6 | 香奈子 | 10 | kana@sample.com |
MySQL
MySQLの場合、取得件数の指定には「LIMIT句」を使います。
-- ①上位4件取得する
SELECT * FROM SAMPLE_TABLE LIMIT 4;
ID | NAME | AGE | |
---|---|---|---|
1 | 太郎 | 39 | taro@sample.com |
2 | 次郎 | 27 | jiro@sample.com |
3 | 三郎 | 13 | sub@sample.com |
4 | 絵美 | 30 | emi@sample.com |
-- ②上位4件取得する(カラム指定)
SELECT NAME, AGE FROM SAMPLE_TABLE LIMIT 4;
NAME | AGE |
---|---|
太郎 | 39 |
次郎 | 27 |
三郎 | 13 |
絵美 | 30 |
-- ③年齢(AGE)が若い順に上位4件取得する
SELECT main.* FROM (SELECT * FROM SAMPLE_TABLE OREDER BY AGE ASC) main LIMIT 4;
ID | NAME | AGE | |
---|---|---|---|
6 | 香奈子 | 10 | kana@sample.com |
3 | 三郎 | 13 | sub@sample.com |
5 | 美香 | 20 | mika@sample.com |
2 | 次郎 | 27 | jiro@sample.com |
Oracle
Oracleの場合は「WHERE句」の中で「rownum」を検索条件に指定して取得します。
-- ①上位4件取得する
SELECT * FROM SAMPLE_TABLE WHERE rownum <= 4;
-- ②上位4件取得する(カラム指定)
SELECT NAME, AGE FROM SAMPLE_TABLE WHERE rownum <= 4;
-- ③年齢(AGE)が若い順に上位4件取得する
SELECT main.* FROM (SELECT * FROM SAMPLE_TABLE OREDER BY AGE ASC) main WHERE main.rownum <= 4;
SQLServer
SQLServerの場合、カラムの先頭で「TOP」を指定することで実現できます。
-- ①上位4件取得する
SELECT TOP 4 * FROM SAMPLE_TABLE;
-- ②上位4件取得する(カラム指定)
SELECT TOP 4 NAME, AGE FROM SAMPLE_TABLE;
-- ③年齢(AGE)が若い順に上位4件取得する
SELECT TOP 4 * FROM SAMPLE_TABLE OREDER BY AGE ASC;
さらに「TOP 数値 PERCENT」と記載することで、上位何パーセントを検索することも可能です。
-- ④年齢(AGE)が若い順に上位50%を取得する
SELECT TOP 50 PERCENT * FROM SAMPLE_TABLE OREDER BY AGE ASC;
ID | NAME | AGE | |
---|---|---|---|
6 | 香奈子 | 10 | kana@sample.com |
3 | 三郎 | 13 | sub@sample.com |
5 | 美香 | 20 | mika@sample.com |
投稿日:2019-08-04
更新日:2019-08-05
[スポンサーリンク]
[スポンサーリンク]
関連記事
サイト内検索
プロフィール
[Name : じゃぶじゃぶ(@jbjb_2019)]
都内で社内SEをしているおじさん。
仕事で得られる知識だけでは限界を感じ、
WEBの勉強がてらITブログを開始。
サーバからWEBサイトまでフルスクラッチで開発しました。
現在は勉強のモチベーションを保つために活用中。
興味があることを雑記的に書いていきます。
[スポンサーリンク]
カテゴリ
タグ
[スポンサーリンク]

最近の記事