Solved

Sql Query using except order by

Posted on 2009-04-12
8
1,967 Views
Last Modified: 2013-12-07
Hi ,

I am using Sql Server 2005

What I want is I am having two queries
I want to retrieve the links other than first 15.

Total links - first 15 links. I want to use order by in both the queries.
Order by not working with except.

thanks


select * from Links order by DateStamp asc
except
select top 15 * from Links order by DateStamp asc

Open in new window

0
Comment
Question by:Saroj13
8 Comments
 
LVL 39

Expert Comment

by:appari
ID: 24127481
try this


Select * from (select top 100 percent * from Links order by DateStamp asc) A
except
Select * from (select  top 15 * from Links order by DateStamp asc) A
order by DateStamp asc
0
 
LVL 25

Expert Comment

by:lwadwell
ID: 24127492
Hi Saroj13,

The order by would be applied to each SQL prior to the except - after the except the order can be different.  To get the order you want you should do an order by on the result , i.e. SELECT * FROM (your query) as v ORDER BY DateStamp asc.  In this case the ORDER BY in your top SQL may be unnecessary.

lwadwell
0
 

Author Comment

by:Saroj13
ID: 24127647
Hi lwadwell:,

I need order by in both the queries.

What I want is . I want all the data according to date.
Then i want top 15 from this all data. Then I want to subtract it.

Thanks
0
How Do You Stack Up Against Your Peers?

With today’s modern enterprise so dependent on digital infrastructures, the impact of major incidents has increased dramatically. Grab the report now to gain insight into how your organization ranks against your peers and learn best-in-class strategies to resolve incidents.

 
LVL 25

Expert Comment

by:lwadwell
ID: 24127664
Saroj13,

I understand that you need the ORDER BY for the TOP 15 ... that is fine.  The EXCEPT returns those rows from the top query not returned from the bottom query - it does not need the top query to be sorted (it will do that itself).  I was suggesting:

SELECT * FROM (
select * from Links
except
select top 15 * from Links order by DateStamp asc
) as v ORDER BY DateStamp asc

lwadwell
0
 
LVL 40

Accepted Solution

by:
Sharath earned 500 total points
ID: 24127715

There are various ways of doing this. You can try appari post. You can also try like this.
SELECT *
  FROM Links
 WHERE NOT EXISTS (SELECT TOP 15 * FROM Links ORDER BY DateStamp DESC)
 
Or like this
SELECT *
  FROM (SELECT *, ROW_NUMBER() OVER (ORDER BY DateStamp DESC) AS RN FROM Links) T1
 WHERE T1.RN > 16
0
 
LVL 2

Expert Comment

by:TejasShahMscIT
ID: 24128125
Hi,

Try this:


SELECT * 
FROM (
select * from Links 
except
select top 15 * from Links order by DateStamp asc
) x 
ORDER BY order by DateStamp asc
 
Thanks,
Tejas

Open in new window

0
 
LVL 143

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 24128634
this would do also:
select * from Links 
where primary_key_field not in (  select top 15 primary_key_field from Links order by DateStamp asc )
order by DateStamp asc

Open in new window

0
 
LVL 3

Expert Comment

by:servicegroup
ID: 24196513
I just stumbed upon something while trying to fix a similar problem.  You can order by SQL's name for this field.  In my case I had, SELECT field1 AS field1, field2 AS field2...Except...

I ordered by 00004 (the 4th field) at the end of the statement.

I hope this helps someone
0

Featured Post

Efficient way to get backups off site to Azure

This user guide provides instructions on how to deploy and configure both a StoneFly Scale Out NAS Enterprise Cloud Drive virtual machine and Veeam Cloud Connect in the Microsoft Azure Cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Checking the Alert Log in AWS RDS Oracle can be a pain through their user interface.  I made a script to download the Alert Log, look for errors, and email me the trace files.  In this article I'll describe what I did and share my script.
In this article we will get to know that how can we recover deleted data if it happens accidently. We really can recover deleted rows if we know the time when data is deleted by using the transaction log.
This video shows how to recover a database from a user managed backup
This video shows how to copy an entire tablespace from one database to another database using Transportable Tablespace functionality.

860 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question