Microsoft SQL Server
Instruction SELECT
Recherche…
Introduction
Dans SQL, les SELECT
renvoient des ensembles de résultats provenant de collections de données telles que des tables ou des vues. SELECT
peuvent être utilisées avec diverses autres clauses comme WHERE
, GROUP BY
ou ORDER BY
pour affiner davantage les résultats souhaités.
SELECT de base de la table
Sélectionnez toutes les colonnes d'une table (table système dans ce cas):
SELECT *
FROM sys.objects
Ou sélectionnez simplement certaines colonnes spécifiques:
SELECT object_id, name, type, create_date
FROM sys.objects
Filtrer les lignes à l'aide de la clause WHERE
La clause WHERE filtre uniquement les lignes qui satisfont certaines conditions:
SELECT *
FROM sys.objects
WHERE type = 'IT'
Trier les résultats en utilisant ORDER BY
La clause ORDER BY trie les lignes du jeu de résultats renvoyé par une colonne ou une expression:
SELECT *
FROM sys.objects
ORDER BY create_date
Résultat du groupe avec GROUP BY
La clause GROUP BY groupe les lignes par une valeur quelconque:
SELECT type, count(*) as c
FROM sys.objects
GROUP BY type
Vous pouvez appliquer une fonction sur chaque groupe (fonction d'agrégat) pour calculer la somme ou le décompte des enregistrements du groupe.
type | c |
---|---|
SQ | 3 |
S | 72 |
IL | 16 |
PK | 1 |
U | 5 |
Filtrer les groupes à l'aide de la clause HAVING
La clause HAVING supprime les groupes qui ne satisfont pas à la condition:
SELECT type, count(*) as c
FROM sys.objects
GROUP BY type
HAVING count(*) < 10
type | c |
---|---|
SQ | 3 |
PK | 1 |
U | 5 |
Retourner uniquement les N premières lignes
La clause TOP ne renvoie que les N premières lignes du résultat:
SELECT TOP 10 *
FROM sys.objects
Pagination en utilisant OFFSET FETCH
La clause OFFSET FETCH est une version plus avancée de TOP. Il vous permet d'ignorer les lignes N1 et de prendre les lignes N2 suivantes:
SELECT *
FROM sys.objects
ORDER BY object_id
OFFSET 50 ROWS FETCH NEXT 10 ROWS ONLY
Vous pouvez utiliser OFFSET sans chercher pour ignorer les 50 premières lignes:
SELECT *
FROM sys.objects
ORDER BY object_id
OFFSET 50 ROWS
SELECT sans FROM (pas de source de données)
L'instruction SELECT peut être exécutée sans clause FROM:
declare @var int = 17;
SELECT @var as c1, @var + 2 as c2, 'third' as c3
Dans ce cas, une ligne contenant des valeurs / résultats d’expressions est renvoyée.