Skip to Content
SQLクックブック 第2版 ―データベースエキスパート、データサイエンティストのための実践レシピ集
book

SQLクックブック 第2版 ―データベースエキスパート、データサイエンティストのための実践レシピ集

by Anthony Molinaro, Robert de Graaf, 嶋田 健志, 木下 哲也
February 2022
Intermediate to advanced
560 pages
8h 5m
Japanese
O'Reilly Japan, Inc.
Content preview from SQLクックブック 第2版 ―データベースエキスパート、データサイエンティストのための実践レシピ集

11章高度な検索

この本は検索に関する本で、これまでの章でも検索を扱ってきています。結合、WHERE句、グループ化手法を使って必要な結果を検索して返す、さまざまな種類のクエリを紹介しました。しかし、検索操作の中には、他の検索とは一線を画し、検索について異なる考え方を示すものもあります。例えば、結果セットを1ページずつ表示するような場合です。その際の問題の半分は、表示するレコード全体を特定(検索)することです。残りの半分は、ユーザが画面上のレコードを行き来する際に、次に表示するページを繰り返し検索することです。最初はページネーションが検索の問題であるとは思わないかもしれませんが、検索の問題として捉え、検索の問題として解決できます。本章では、このような種類の検索を扱います。

レシピ11.1 結果セットをページネーションする

問題

結果セットをページネーション(スクロール)したい。例えば、EMPテーブルから1番目から5番目の給与を返し、次にその次の5つを返したい。目標は、一度に5つのレコードを表示し、「次」ボタンをクリックするたびに次にスクロールできるようにすることである。

解決策

SQLには最初、最後、次という概念がないので、対象の行に順番を付けなければいけません。順番を付けるだけで、特定の範囲のレコードを正確に返すことができます。

ウィンドウ関数ROW_NUMBER OVERを使って順番を付け、返したいレコードの範囲をWHERE句で指定します。例えば、1行目から5行目までを返すには次のようにします。

select sal
  from (
select row_number() over (order by sal) as rn,
       sal
  from emp
       ) x
 where ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

詳解 Rustアトミック操作とロック ―並行処理実装のための低レイヤプログラミング

詳解 Rustアトミック操作とロック ―並行処理実装のための低レイヤプログラミング

Mara Bos, 中田 秀基
戦略的データサイエンス入門 ―ビジネスに活かすコンセプトとテクニック

戦略的データサイエンス入門 ―ビジネスに活かすコンセプトとテクニック

Foster Provost, Tom Fawcett, 竹田 正和, 古畠 敦, 瀬戸山 雅人, 大木 嘉人, 藤野 賢祐, 宗定 洋平, 西谷 雅史, 砂子 一徳, 市川 正和, 佐藤 正士

Publisher Resources

ISBN: 9784873119779Other