1. ホーム
  2. db2

[解決済み] DB2のLIMITに相当するもの

2023-01-28 14:19:47

質問

どのように LIMIT をどのように行うのですか?

50,000以上のレコードを持つテーブルがあり、レコード0から10,000、レコード10,000から20,000を返したいのですが、どうすればよいですか?

SQLでは、次のように書きますよね。 LIMIT 0,10000 をクエリの最後に書き、0から10,000までは LIMIT 10000,10000 が10000から20000までのクエリの末尾にあります。

では、これはDB2でどのように行われるのでしょうか?コードと構文は何ですか? (完全なクエリー例があるとありがたいです)

どのように解決するのですか?

この方法を開発しました。

あなたは、順序付け可能なユニークな値を持つテーブルを必要としています。

10,000~25,000行が必要で、テーブルの行数が40,000行の場合、まず開始点と総行数を取得する必要があります。

int start = 40000 - 10000;

int total = 25000 - 10000;

そして、これらをコードでクエリに渡します。

SELECT * FROM 
(SELECT * FROM schema.mytable 
ORDER BY userId DESC fetch first {start} rows only ) AS mini 
ORDER BY mini.userId ASC fetch first {total} rows only