解決Sql中DIstinct與Order By共同使用的沖突問題


1.需求場景:

  需要把最新更新文章的前五名作者展示出來。

2.解決問題第一步:

  

select top 5 creator from table order by updateDate desc

 

結果:顯示五條記錄,但是名字是重復的。

3.解決問題第二步:

加Distinct

 

select distinct top 5 creator from table order by updateDate desc

結果:報錯。如果指定了 SELECT DISTINCT,那么 ORDER BY 子句中的項就必須出現在選擇列表中。

4.解決問題第四步:

按照錯誤提示修改代碼

select  distinct top 5 creator,updatedate from table order by updatedate desc

 結果還是會出現重復的,日了狗了,去百度吧

5.正確答案:

select top 5  creator from brands  group by creator  order by max(updateDate) desc

 總結:對max()函數有了新的感覺了。並不只是放在select里簡單獲取一下最大值了,他其實也可以像asp.net webform Gridview下的rowdatabind()的那個感覺一樣,隨着結果集變動。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM