Quel est l'équivalent de TOP
de SQL Server ou FETCH FIRST
De DB2 ou LIMIT
de mySQL dans PostgreSQL?
Vous pouvez utiliser LIMIT comme dans MySQL, par exemple:
SELECT * FROM users LIMIT 5;
Vous pouvez toujours ajouter la clause OFFSET
avec la clause LIMIT
.
Vous devrez peut-être récupérer un ensemble d'enregistrements à partir d'un décalage particulier. Voici un exemple qui récupère 3 enregistrements à partir de la 3e position:
testdb=# SELECT * FROM COMPANY LIMIT 3 OFFSET 2;
Cela produirait le résultat suivant:
id | name | age | address | salary
----+-------+-----+-----------+--------
3 | Teddy | 23 | Norway | 20000
4 | Mark | 25 | Rich-Mond | 65000
5 | David | 27 | Texas | 85000
Des explications complètes et d'autres exemples sont disponibles ICI
Utilisez la clause LIMIT
.
Sur PostgreSQL, il existe deux façons d'atteindre cet objectif.
La première option consiste à utiliser la méthode standard SQL: 2008 pour limiter un jeu de résultats à l'aide de FETCH FIRST N ROWS ONLY
syntaxe:
SELECT
title
FROM
post
ORDER BY
id DESC
FETCH FIRST 50 ROWS ONLY
La syntaxe standard SQL: 2008 est prise en charge depuis PostgreSQL 8.4.
Pour PostgreSQL 8.3 ou versions antérieures, vous devez utiliser la clause LIMIT pour limiter la taille du jeu de résultats:
SELECT
title
FROM
post
ORDER BY
id DESC
LIMIT 50
Pour plus de détails sur ce sujet, consultez cet article .
En dehors de la limite, vous pouvez également utiliser Fetch First. Votre question avait déjà la réponse
Select * from users FETCH FIRST 5 ROWS ONLY