メインコンテンツまでスキップ
メインコンテンツまでスキップ

LIMIT句

LIMIT m は結果から最初の m 行を選択することを許可します。

LIMIT n, m は最初の n 行をスキップした後、結果から m 行を選択することを許可します。LIMIT m OFFSET n 構文は同等です。

nm は非負整数でなければなりません。

明示的に結果をソートする ORDER BY 句がない場合、結果の行の選択は任意であり、非決定的である可能性があります。

注記

結果セットの行数は limit 設定にも依存する場合があります。

LIMIT ... WITH TIES 修飾子

LIMIT n[,m] のために WITH TIES 修飾子を設定し、ORDER BY expr_list を指定すると、結果には最初の n 行または n,m 行と、LIMIT n の場合は位置 n で、LIMIT n,m の場合は m の行と同じ ORDER BY フィールド値を持つすべての行が含まれます。

この修飾子は、ORDER BY ... WITH FILL 修飾子 とも組み合わせることができます。

例えば、次のクエリ

SELECT * FROM (
    SELECT number%50 AS n FROM numbers(100)
) ORDER BY n LIMIT 0,5

┌─n─┐
│ 0 │
│ 0 │
│ 1 │
│ 1 │
│ 2 │
└───┘

を返しますが、WITH TIES 修飾子を適用すると

SELECT * FROM (
    SELECT number%50 AS n FROM numbers(100)
) ORDER BY n LIMIT 0,5 WITH TIES

は別の行セットを返します

┌─n─┐
│ 0 │
│ 0 │
│ 1 │
│ 1 │
│ 2 │
│ 2 │
└───┘

なぜなら行番号 6 が行番号 5 と同じ値 "2" を n フィールドに持っているからです。