DB2で件数指定してSELECTする方法

菱田直哉
沢山データがあるデータで、最初の10件を取得するにはどうしたらいいの?

モリー
それは「FETCH FIRST 10 ROWS ONLY」だね。

Select
*
from T_DUMMY
FETCH FIRST 10 ROWS ONLY
FOR READ ONLY;

菱田直哉
なるほど。これで先頭10件が取れるのか。。。
菱田直哉
例えば、100~200件が取りたい場合は?
モリー
それは、取りたい順序を指定する必要があるから、「ROWNUMBER()」を使うといいよ。

Select
*
from
(
Select
RowNumBer() Over(Order by A_NUM) as R_NUM
, DATA
FROM T_DUMMY
)
Where
R_NUM BETWEEN 100 And 200
FOR READ ONLY;

菱田直哉
A_NUMでソートされた100~200目のレコードが取得できたね!
菱田直哉
じゃあ、最後から10行は?
モリー
それは「FETCH LAST 10 ROWS ONLY」だね。

Select
*
from T_DUMMY
FETCH LAST 10 ROWS ONLY
FOR READ ONLY;

菱田直哉
最後の10行も取れるんだね!
モリー
そうなんだよ。これからデータを取得する場合には活用してね!