IF OBJECT_ID('COMPANY') IS NOT NULL DROP TABLE COMPANY GO CREATE TABLE COMPANY ( ID INT PRIMARY KEY, NAME VARCHAR(25), LOCATION VARCHAR(25) ) GO INSERT INTO COMPANY VALUES (1,'HCL','London'), (2,'HP','Bangalore'), (3,'Microsoft','Bangalore'), (4,'Infosys','Pune'), (5,'Google','London'), (6,'GE', 'London'), (7,'AltiSource','New York'), (8,'Facebook','Palo alto'), (9,'IBM','New York'), (10,'TCS','Mumbai') GO SELECT * from COMPANY -- Select 100 PERCENT ROWS SELECT TOP (100) PERCENT * FROM COMPANY ----TOP 100 Percent gives us all the rows from company table. -- Select 50 PERCENT ROWS SELECT TOP (50) PERCENT * FROM COMPANY ----We have 10 rows in Company table, 50 percent of 10 rows is 5, therefore we've 5 rows in result. -- Select 25 PERCENT ROWS SELECT TOP (25) PERCENT * FROM COMPANY ----There are 10 rows in Company table 25 percent of 10 rows is fractional value 2.5 and it’s rounded to 3 therefore above query returns 3 rows. -- Variable with TOP PERCENTAGE Declare @Percentage AS int = 30 SELECT TOP (@Percentage) PERCENT * FROM COMPANY ----There are 10 rows in Company table 30 percent of 10 rows is 3, therefore we've 3 rows in result -- Select -100 PERCENT ROWS, Using Negative value which results in Error. -- Remove below comment to see the error. --SELECT TOP (-100) PERCENT * FROM COMPANY ----Percent values must be between 0 and 100.