解决Sql中DIstinct与Order By共同使用的冲突问题

1.需求场景:

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

2.解决问题第一步:

  

1
select top 5 creator from table order by updateDate desc

 

结果:显示五条记录,但是名字是重复的。

3.解决问题第二步:

加Distinct

 

1
select distinct top 5 creator from table order by updateDate desc

结果:报错。如果指定了 SELECT DISTINCT,那么 ORDER BY 子句中的项就必须出现在选择列表中。

4.解决问题第四步:

按照错误提示修改代码

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

 结果还是会出现重复的,日了狗了,去百度吧

5.正确答案:

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

 总结:对max()函数有了新的感觉了。并不只是放在select里简单获取一下最大值了,他其实也可以像asp.net webform Gridview下的rowdatabind()的那个感觉一样,随着结果集变动。

posted @   chenxizhaolu  阅读(13988)  评论(5编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示