how to select 5 to 7 rows from a table, which contains 10 rows?
Answers were Sorted based on User's Feedback
Answer / purabi roy(sarkar)
select top 3* from Tablename
where columnname in ( select top 7columnname from table
name order by columnname desc )
and columnname not in( select top 4columnname from
tablename order by columnname desc )
order by columnname desc
| Is This Answer Correct ? | 0 Yes | 1 No |
Answer / rakesh kumar jaiswal
CREATE TABLE Names
(
NameID INT IDENTITY(1, 1)
PRIMARY KEY CLUSTERED,
FName VARCHAR(32)
)
GO
SET NOCOUNT ON
INSERT Names(FName) VALUES('Aaron')
INSERT Names(FName) VALUES('Greg')
INSERT Names(FName) VALUES('Alex')
INSERT Names(FName) VALUES('Luan')
INSERT Names(FName) VALUES('John')
INSERT Names(FName) VALUES('Todd')
INSERT Names(FName) VALUES('Scott')
INSERT Names(FName) VALUES('Jess')
INSERT Names(FName) VALUES('Drew')
INSERT Names(FName) VALUES('Katherine')
INSERT Names(FName) VALUES('Paul')
GO
-- solution #1: nested top
SELECT TOP 1 FName
FROM
(
SELECT TOP 10 FName
FROM Names
ORDER BY FName
) sub
ORDER BY FName DESC
-- solution #2: NOT IN
SELECT TOP 1 FName
FROM Names WHERE FName NOT IN
(
SELECT TOP 9 FName
FROM Names
ORDER BY FName
)
ORDER BY FName
-- solution #3: derived count
-- this assumes FName is unique
SELECT FName
FROM Names
WHERE
(
SELECT COUNT(*)
FROM Names n2
WHERE n2.FName <= Names.FName
) = 10
-- solution #4: MAX
SELECT FName = MAX(FName) FROM
(
SELECT TOP 10 FName
FROM Names
ORDER BY FName
) sub
-- solution #5: relative fetch from cursor
-- yes, cursors are generally evil, but
-- sometimes you might be surprised
DECLARE FNames CURSOR
LOCAL STATIC READ_ONLY FOR
SELECT FName
FROM Names
ORDER BY FName
DECLARE @FName VARCHAR(32)
OPEN FNames
FETCH RELATIVE 10 FROM FNames INTO @FName
CLOSE FNames
DEALLOCATE FNames
SELECT FName = @FName
DROP TABLE Names
GO
| Is This Answer Correct ? | 1 Yes | 3 No |
Answer / john t
If you knowfor sure that the number of rows is 10 then the
above answers given above a great examples. So what if you
don't know the total number of rows in that table? Can you
use Select count(*) from nameoftable;
| Is This Answer Correct ? | 0 Yes | 2 No |
Answer / ajay
select * from emp where sno between 5 and 7
ajay.thomala@gmail.com
| Is This Answer Correct ? | 2 Yes | 4 No |
Answer / monty
i have other idea if there is no duplicate record in the
table you can use this
select top 7 *from employee
except
select top 4 *from employee
| Is This Answer Correct ? | 1 Yes | 3 No |
Answer / ajay (esd)
Please ignore my above answer
select * from tablename where sno between 4 and 8
Ajay
| Is This Answer Correct ? | 0 Yes | 2 No |
Answer / manas
select * from
(select top 3 * from emp where empid in
(select top 7 * from emp where empid not in
(select top 4 * from emp order by empid)) order by empid
| Is This Answer Correct ? | 1 Yes | 5 No |
How can sql server instances be hidden?
sql server architecture ?
is it possible to use a variable in a query with the IN clause (a,b,c..z), without getting quotes or conversion errors?
What are the authentication modes in SQL Server?
as a part of your job, what are the dbcc commands that you commonly use for database maintenance? : Sql server database administration
select the 3rd maximum salary from sql server database if 4 (just an example In practically I may not know the exact situation) of the highest salaries are equal.
What do you do in data exploration
how to implement locking in sql server
What is the use of keyword with encryption.
What are the new scripting capabilities of ssms? : sql server management studio
What is difference between sql and sql server?
How would you retrieve Unique rows from table without using UNIQUE and DISTINCT keyword?
Oracle (3259)
SQL Server (4518)
MS Access (429)
MySQL (1402)
Postgre (483)
Sybase (267)
DB Architecture (141)
DB Administration (291)
DB Development (113)
SQL PLSQL (3330)
MongoDB (502)
IBM Informix (50)
Neo4j (82)
InfluxDB (0)
Apache CouchDB (44)
Firebird (5)
Database Management (1411)
Databases AllOther (288)