title: SELECT BOTTOM without changing ORDER BY
body: <p>I'm new to SQL and wondering is it possible to select the bottom n rows without using <code>SELECT TOP</code> and then <code>ORDER BY</code>.</p>
  
  <p>I can find numerous examples of mimicing the idea with <code>SELECT TOP</code> &amp; then <code>ORDER BY</code> e.g. <a href="https://stackoverflow.com/q/1876606">How to select bottom most rows?</a> but I need to keep my data sorted in the opposite order so using <code>ORDER BY</code> isn't ideal.</p>
  
  <p>My below query returns the data points I need to pass through to my other programmes but now the data comes out sorted in the opposite direction than desired and causes issues.</p>
  
  <pre><code>SELECT TOP 504 
  date
  ,price
  
  FROM
  [dbo].[AssetRet]
  
  WHERE
  asset = 'SP500'
  
  ORDER BY
  date DESC
  </code></pre>
  
  <p>I could get round this by putting a filter on <code>date</code> on remove <code>TOP</code> but I'm not sure how to do this i.e.:</p>
  
  <pre><code>WHERE
  date &gt; Min(Select DISTINCT TOP 504 date FROM [dbo].[AssetRet] ORDER BY date DESC)
  </code></pre>
  
  <p>I hope it is possible via SQL to <code>SELECT BOTTOM</code> without <code>ORDER BY</code>; else I will have to just flip the data after the SQL query in the other program</p>