Tous les produits
Search
Centre de documentation

OpenSearch:SELECT

Dernière mise à jour :Aug 10, 2026

SELECT constitue la base de toutes les requêtes dans l'édition High-performance Search. Chaque clause de requête avancée — filtrage, regroupement, tri et pagination — s'appuie sur une instruction SELECT. Pour en savoir plus sur la syntaxe des requêtes avancées, consultez les rubriques connexes.

Syntaxe

SELECT [ DISTINCT ]
    { * | projectItem [, projectItem ]* }
FROM tableExpression
    [ WHERE booleanExpression ]
    [ GROUP BY { groupItem [, groupItem ]* } ]
    [ ORDER BY { orderByItem [, orderByItem ]* } ]
    [ HAVING booleanExpression ]
    [ LIMIT number ]
    [ OFFSET number ]

projectItem:
    expression [ [ AS ] columnAlias ]
    | tableAlias . *

Clauses

SELECT

Renvoie toutes les colonnes ou un sous-ensemble spécifique de colonnes de la table source.

Exemple 1 : Renvoyer toutes les colonnes.

SELECT * FROM table;

Exemple 2 : Renvoyer des colonnes spécifiques et leur attribuer un alias.

SELECT f1, f2 AS ff FROM table;

Exemple 3 : Renvoyer des valeurs distinctes en supprimant les doublons.

SELECT DISTINCT f FROM table;

WHERE

Filtre les lignes avant tout regroupement. Seules les lignes pour lesquelles l'expression booleanExpression est évaluée à true sont transmises aux clauses suivantes.

GROUP BY

Regroupe les lignes partageant les mêmes valeurs dans les colonnes spécifiées. Cette clause est généralement utilisée avec des fonctions d'agrégation.

SELECT f1, count(*) AS num
FROM t1
GROUP BY f1;

ORDER BY

Trie l'ensemble de résultats selon une ou plusieurs colonnes.

HAVING

Filtre les groupes après l'agrégation GROUP BY. Utilisez la clause HAVING pour appliquer des conditions sur les résultats agrégés.

Différence par rapport à WHERE :

Clause S'applique à Évaluation
WHERE Lignes individuelles Avant le regroupement
HAVING Groupes agrégés Après le regroupement

LIMIT

Limite le nombre de lignes renvoyées.

OFFSET

Ignore un nombre spécifié de lignes avant de renvoyer les résultats. Combinez les clauses OFFSET et LIMIT pour paginer les requêtes.

L'exemple suivant compte les lignes par groupe dans une sous-requête, puis filtre les groupes dont la valeur num dépasse 100 :

SELECT * FROM (
    SELECT f1, count(*) AS num
    FROM t1
    GROUP BY f1
) tt
WHERE tt.num > 100;