我寫一個SQL查詢如下 -如果將查詢結果按照相同的順序保存,如果它被賦予子查詢?
select
Customers.Id
from
customers
inner join opportunities
on customers.id=opportunities.customerid
group by
opportunities.customerId,
Customers.Id
order by
count(Opportunities.Id) desc
上面的查詢與下降的機會ID的計數的順序返回customes ID。
我上面的查詢給出一個子查詢到另一個查詢AS-
select * from Customers where Id in (above query)
但我的最終查詢沒有返回的順序相同的結果。它正在改變我的結果順序,以升序。
如何保持與內部查詢/子查詢相同的記錄排序?
如果你沒有指定sql引擎的順序,它可以自由地對它認爲合適的任何方式進行排序(或不排序)。即使看起來你沒有'order by'也能獲得一致的順序,這是一種錯覺,並且可以在你正在使用的新版本或修訂版本的sql引擎中進行更改。 – 2012-08-03 13:08:19