Ricerca…


introduzione

In SQL, le istruzioni SELECT restituiscono insiemi di risultati da raccolte di dati come tabelle o viste. SELECT istruzioni SELECT possono essere utilizzate con varie altre clausole come WHERE , GROUP BY o ORDER BY per perfezionare ulteriormente i risultati desiderati.

SELEZIONA di base dalla tabella

Seleziona tutte le colonne da una tabella (tabella di sistema in questo caso):

SELECT *
FROM sys.objects

Oppure seleziona solo alcune colonne specifiche:

SELECT object_id, name, type, create_date
FROM sys.objects

Filtra le righe usando la clausola WHERE

La clausola WHERE filtra solo le righe che soddisfano alcune condizioni:

SELECT *
FROM sys.objects
WHERE type = 'IT'

Ordina i risultati utilizzando ORDER BY

La clausola ORDER BY ordina le righe nel set di risultati restituito da alcune colonne o espressioni:

SELECT *
FROM sys.objects
ORDER BY create_date

Raggruppa i risultati utilizzando GROUP BY

La clausola GROUP BY raggruppa le righe in base a qualche valore:

SELECT type, count(*) as c
FROM sys.objects
GROUP BY type

È possibile applicare alcune funzioni su ciascun gruppo (funzione di aggregazione) per calcolare la somma o il conteggio dei record nel gruppo.

genere c
SQ 3
S 72
IT 16
PK 1
U 5

Filtra i gruppi usando la clausola HAVING

La clausola HAVING rimuove i gruppi che non soddisfano la condizione:

SELECT type, count(*) as c
FROM sys.objects
GROUP BY type
HAVING count(*) < 10
genere c
SQ 3
PK 1
U 5

Restituzione solo delle prime N righe

La clausola TOP restituisce solo le prime N righe nel risultato:

SELECT TOP 10 *
FROM sys.objects

Impaginazione utilizzando OFFSET FETCH

La clausola OFFSET FETCH è la versione più avanzata di TOP. Ti permette di saltare le righe N1 e prendere le prossime righe N2:

SELECT *
FROM sys.objects
ORDER BY object_id
OFFSET 50 ROWS FETCH NEXT 10 ROWS ONLY

Puoi utilizzare OFFSET senza recupero per saltare solo le prime 50 righe:

SELECT *
FROM sys.objects
ORDER BY object_id
OFFSET 50 ROWS

SELEZIONA senza FROM (nessuna fonte di dati)

L'istruzione SELECT può essere eseguita senza la clausola FROM:

declare @var int = 17;

SELECT @var as c1, @var + 2 as c2, 'third' as c3 

In questo caso, viene restituita una riga con valori / risultati di espressioni.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow