Stop the processing after the number of rows has been affected.
Example:
Step-1: Create
the Table and insert some sample data.
CREATE TABLE STUDENT
(
ID INT IDENTITY(1,1) PRIMARY KEY,
STUDENTNAME VARCHAR(100) NOT NULL ,
LIVINGLOCATION VARCHAR(100) NULL
)
INSERT INTO STUDENT(STUDENTNAME,LIVINGLOCATION)
SELECT 'Rakesh','Hyderabad'
UNION ALL
SELECT 'Raju','Delhi'
UNION ALL
SELECT 'Madhu','Hyderabad'
UNION ALL
SELECT 'Naresh',NULL
UNION ALL
SELECT 'Venaktesh','Chennai'
In above Insert Statement we inserted 5 sample records.
Step-2: Using SET ROWCOUT
SET ROWCOUNT 3;
SELECT * FROM
STUDENT
ORDER BY ID DESC
It will affected 3 rows after that processing has been stopped.
Step-2: Using SET
ROWCOUT 0
SET ROWCOUNT 0;
SELECT * FROM
STUDENT
ORDER BY ID DESC
It will return all rows if ROWCOUNT IS 0.
good
ReplyDeletehi sir, i have one doubt, how to retrive the particular second row using top clause method???
ReplyDeleteThis comment has been removed by the author.
DeleteThis Query may helpfull
DeleteCREATE TABLE EMPLOYEE
(
EMPID INT IDENTITY(1,1) PRIMARY KEY,
EMPNAME VARCHAR(100),
SALARY INT NOT NULL
)
INSERT INTO EMPLOYEE
SELECT 'RAKESH',8000
UNION ALL
SELECT 'RAJU',1000
UNION ALL
SELECT 'NARESH',5000
UNION ALL
SELECT 'VENKATESH',5800
SELECT * FROM (select *, ROW_NUMBER() OVER(ORDER BY Salary DESC) ROWNUM FROM Employee) a WHERE a.ROWNUM=2
CREATE TABLE EMPLOYEE
ReplyDelete(
EMPID INT IDENTITY(1,1) PRIMARY KEY,
EMPNAME VARCHAR(100),
SALARY INT NOT NULL
)
INSERT INTO EMPLOYEE
SELECT 'RAKESH',8000
UNION ALL
SELECT 'RAJU',1000
UNION ALL
SELECT 'NARESH',5000
UNION ALL
SELECT 'VENKATESH',5800
SELECT TOP 1 * FROM (SELECT TOP 2 * FROM EMPLOYEE ORDER BY SALARY DESC) A ORDER BY SALARY
Splendid !! I have learnt new concept
ReplyDeleteThanks Bhavana
Delete