This is a discussion on sorting twice?! within the SQL Server forums, part of the Microsoft SQL Server category; --> here's a good one for you... I want to return the last 20 records I have modified. I have ...
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| here's a good one for you... I want to return the last 20 records I have modified. I have a datemodified field - excellent. So I run a query to select the top 20 when ordered by datemodified desc. But now I have these results I want them sorted by companyname. Is this possible? Yes I could use my GUI to do the second sort, but can it be done just in a query? Thanks Tim |
| |||
| Yes. Something like : SELECT myColID FROM myTable WHERE myColID IN (SELECT TOP 20 FROM myTable ORDER BY dateDESC) ORDER BY companyName ASC -- ---- Jack Vamvas ___________________________________ Receive free SQL tips - www.ciquery.com/sqlserver.htm ___________________________________ "Tim" <Citizen10Bears@gmail.com> wrote in message news:1151401355.662526.118990@75g2000cwc.googlegro ups.com... > here's a good one for you... > > I want to return the last 20 records I have modified. I have a > datemodified field - excellent. > So I run a query to select the top 20 when ordered by datemodified > desc. > But now I have these results I want them sorted by companyname. > > Is this possible? > > Yes I could use my GUI to do the second sort, but can it be done just > in a query? > > Thanks > > Tim > |
| |||
| Tim (Citizen10Bears@gmail.com) writes: > here's a good one for you... > > I want to return the last 20 records I have modified. I have a > datemodified field - excellent. > So I run a query to select the top 20 when ordered by datemodified > desc. > But now I have these results I want them sorted by companyname. > > Is this possible? Sure. With derived tables (almost) everything is possible: SELECT ... FROM (SELECT TOP 20 ... FROM tbl ORDER BY datemodified DESC) AS x ORDER BY companyname A derived table is a verital temp table within the query so speak, and is an immensly powerful tool to build complex queries. Important to know is that the optimizer is very good at recasting computation order to get better performance. (Although in this particular case it is not likely to happen because of the TOP operator.) -- Erland Sommarskog, SQL Server MVP, esquel@sommarskog.se Books Online for SQL Server 2005 at http://www.microsoft.com/technet/pro...ads/books.mspx Books Online for SQL Server 2000 at http://www.microsoft.com/sql/prodinf...ons/books.mspx |
| ||||
| thanks guys. Tim Erland Sommarskog wrote: > Tim (Citizen10Bears@gmail.com) writes: > > here's a good one for you... > > > > I want to return the last 20 records I have modified. I have a > > datemodified field - excellent. > > So I run a query to select the top 20 when ordered by datemodified > > desc. > > But now I have these results I want them sorted by companyname. > > > > Is this possible? > > Sure. With derived tables (almost) everything is possible: > > SELECT ... > FROM (SELECT TOP 20 ... > FROM tbl > ORDER BY datemodified DESC) AS x > ORDER BY companyname > > A derived table is a verital temp table within the query so speak, and > is an immensly powerful tool to build complex queries. Important to know > is that the optimizer is very good at recasting computation order to get > better performance. (Although in this particular case it is not likely > to happen because of the TOP operator.) > > > -- > Erland Sommarskog, SQL Server MVP, esquel@sommarskog.se > > Books Online for SQL Server 2005 at > http://www.microsoft.com/technet/pro...ads/books.mspx > Books Online for SQL Server 2000 at > http://www.microsoft.com/sql/prodinf...ons/books.mspx |
| Thread Tools | |
| Display Modes | |
|
|