Click here to Skip to main content
Click here to Skip to main content

Get Top X rows from a table

, 23 Feb 2012
Rate this:
Please Sign up or sign in to vote.
How to use variable in SELECT TOP SQL command
Sometimes, we do very ugly things just because of missing simple tricks.
 
I believe all of the devs who work with SQL use SELECT TOP command as they need. This is a very simple SQL command.
 
SELECT TOP 10 * FROM YOURTABLE
 
Now, sometimes you need to use variable instead of constant number (say 10). If you write the query as:
 
DECLARE @count int
SET @count = 20
SELECT TOP @count * FROM YOURTABLE
 
This will give you a syntax error.
 
To solve this issue, we sometimes write dynamic SQL (SQL statements constructed inside a string variable) and execute that.
 
But we all know dynamic SQL is always bad for many reasons and we should avoid that as far as we can.
 
We can avoid dynamic SQL in this scenario very easily with a simple trick. Once you know that, you will laugh at yourself if you really used dynamic SQL for this scenario.
 
The Solution:
 
DECLARE @count int
SET @count = 20
SELECT TOP (@count) * FROM YOURTABLE
 
Did you mark the trick? Yes, you just need enclose the variable with a Bracket ().
 
By the way, this trick is Microsoft SQL Server specific. Experts from Oracle or mysql may post alternatives from those platforms.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Mahmud Hasan
Software Developer (Senior)
Netherlands Netherlands
Software Engineer | Software Architect | System Designer | System Analyst | Team Leader | Consultant (.Net)
 
9 Years of Experience in the Industry.
 
Currently working as System Designer at CIMSOLUTIONS, Netherlands
 

View My Profile in LinkedIn
Follow on   Twitter

Comments and Discussions

 
GeneralReason for my vote of 5 nice one Pinmembernikhi _singh22-Feb-12 0:54 
GeneralRe: Thanks. PinmemberMahmud Hasan22-Feb-12 4:50 
GeneralReason for my vote of 5 Thanks! PinmemberPablo Aliskevicius21-Feb-12 21:33 
GeneralRe: Thanks. PinmemberMahmud Hasan21-Feb-12 21:36 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web03 | 2.8.140721.1 | Last Updated 23 Feb 2012
Article Copyright 2012 by Mahmud Hasan
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid