Wie Zeilen in PostgreSQL SELECT begrenzen
-
16-09-2019 - |
Frage
Was ist das Äquivalent zu SQL Server TOP
oder die DB2-FETCH FIRST
oder mySQL der LIMIT
in PostgreSQL?
Lösung
Sie können mit LIMIT wie in MySQL, zum Beispiel:
SELECT * FROM users LIMIT 5;
Andere Tipps
Sie können immer die OFFSET
Klausel hinzufügen, zusammen mit LIMIT
Klausel.
Sie müssen möglicherweise versetzt, um einen Satz von Datensätzen von einem bestimmten abholen. Hier ist ein Beispiel, das 3 Datensätze nimmt vom 3. Startposition:
testdb=# SELECT * FROM COMPANY LIMIT 3 OFFSET 2;
Dies würde produziert folgendes Ergebnis:
id | name | age | address | salary
----+-------+-----+-----------+--------
3 | Teddy | 23 | Norway | 20000
4 | Mark | 25 | Rich-Mond | 65000
5 | David | 27 | Texas | 85000
Vollständige Erklärung und weitere Beispiele überprüfen hier
Mit der LIMIT
Klausel.
Neben Grenze könnte man zunächst auch Fetch verwenden. Ihre Frage schon die Antwort
Select * from users FETCH FIRST 5 ROWS ONLY
Auf PostgreSQL, gibt es zwei Möglichkeiten, um dieses Ziel zu erreichen.
SQL-Standards
Die erste Option ist die SQL zu verwenden: 2008 Art und Weise zu begrenzen eine Ergebnismenge mit der FETCH FIRST N ROWS ONLY
Syntax:
SELECT
title
FROM
post
ORDER BY
id DESC
FETCH FIRST 50 ROWS ONLY
Die SQL: 2008. Standardsyntax ist seit PostgreSQL 8.4 unterstützt
PostgreSQL 8.3 oder älter
Für PostgreSQL 8.3 oder ältere Versionen, müssen Sie die LIMIT-Klausel die Ergebnismenge Größe beschränken:
SELECT
title
FROM
post
ORDER BY
id DESC
LIMIT 50
Weitere Informationen zu diesem Thema findet mich diesen Artikel .