La clausola TOP in SQL Server viene utilizzata per limitare il numero di righe in un set di risultati. È possibile specificare il numero di righe o la percentuale di righe da restituire con la clausola TOP.
La specifica della percentuale di righe con la clausola TOP è una funzionalità introdotta di recente in SQL Server 2012.
È possibile scaricare il codice SQL per TOP con percentuale e provarlo nella macchina SQL Server.
Dimostreremo TOP con percentuale.
Creare una tabella COMPANY e popolarla con dieci righe.
IF OBJECT_ID ('COMPANY') NON È NULL DROP TABLE COMPANY GO CREA TABLE COMPANY (ID INT CHIAVE PRIMARIA, NAME VARCHAR (25), LOCATION VARCHAR (25)) VA INSERISCI NEI VALORI AZIENDALI (1, 'HCL', 'London' ), (2, "HP", "Bangalore"), (3, "Microsoft", "Bangalore"), (4, "Infosys", "Pune"), (5, "Google", "Londra"), (6, 'GE', 'London'), (7, 'AltiSource', 'New York'), (8, 'Facebook', 'Palo alto'), (9, 'IBM', 'New York') (10, "TCS", "Mumbai") GO
Ora abbiamo la tabella COMPANY con dieci righe.
- Selezionare 100 PERCENT ROWS SELECT TOP (100) PERCENT * FROM COMPANY
TOP 100 percento ci dà tutte le righe dalla tabella della società.
- Selezionare 50 PERCENT ROWS SELECT TOP (50) PERCENT * FROM COMPANY
Abbiamo dieci righe nella tabella società e il 50 percento delle dieci righe è cinque. Pertanto, abbiamo cinque righe nel risultato.
- Selezionare 25 PERCENT ROWS SELECT TOP (25) PERCENT * FROM COMPANY
Ci sono dieci righe nella tabella delle società e il 25 percento delle dieci righe è un valore frazionario di 2,5. È arrotondato a tre. Pertanto, la query precedente restituisce tre righe.
- Variabile con TOP PERCENTAGE Dichiara @Percentage AS int = 30 SELECT TOP (@Percentage) PERCENT * FROM COMPANY
Ci sono dieci righe nella tabella delle società e il 30 percento delle dieci righe è tre. Pertanto, abbiamo tre righe nel risultato.
- Seleziona -100 PERCENT ROWS, utilizzando un valore negativo che genera un errore. SELECT TOP (-100) PERCENT * FROM COMPANY
Questo dà l'errore "I valori percentuali devono essere compresi tra 0 e 100", quindi i valori negativi non sono consentiti con TOP con percentuale.