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.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow