web-dev-qa-db-ja.com

PostgreSQL SELECTで行を制限する方法

PostgreSQLのSQL ServerのTOPまたはDB2のFETCH FIRSTまたはmySQLのLIMITと同等のものは何ですか?

39
Dan Mertz

MySQLと同じように [〜#〜] limit [〜#〜] を使用できます。例:

SELECT * FROM users LIMIT 5;
65
Sinan Taifour

OFFSET句とともにLIMIT句をいつでも追加できます。

特定のオフセットからレコードのセットを取得する必要がある場合があります。 3番目の位置から3つのレコードを取得する例を次に示します。

testdb=# SELECT * FROM COMPANY LIMIT 3 OFFSET 2;

これにより、次の結果が生成されます。

 id | name  | age | address   | salary
----+-------+-----+-----------+--------
  3 | Teddy |  23 | Norway    |  20000
  4 | Mark  |  25 | Rich-Mond |  65000
  5 | David |  27 | Texas     |  85000

完全な説明とその他の例のチェック [〜#〜] here [〜#〜]

15
mongotop

LIMIT 句を使用します。

4
Hosam Aly

PostgreSQLでは、この目標を達成する2つの方法があります。

SQL標準

最初のオプションは、FETCH FIRST N ROWS ONLY構文を使用して結果セットを制限するSQL:2008標準の方法を使用することです。

SELECT
    title
FROM
    post
ORDER BY
    id DESC
FETCH FIRST 50 ROWS ONLY

PostgreSQL 8.4以降、SQL:2008標準構文がサポートされています。

PostgreSQL 8.3以前

PostgreSQL 8.3以前のバージョンでは、LIMIT句を使用して結果セットのサイズを制限する必要があります。

SELECT
    title
FROM
    post
ORDER BY
    id DESC
LIMIT 50

このトピックの詳細については、 この記事 をご覧ください。

1
Vlad Mihalcea

制限とは別に、Fetch Firstも使用できます。あなたの質問にはすでに答えがありました

Select * from users FETCH FIRST 5 ROWS ONLY
1
Sarath