【发布时间】:2012-05-16 17:13:20
【问题描述】:
我正在尝试提出一个 LINQ 查询,它将返回点击次数最多的第一行,然后是按日期 desc 排序的其余行。这可以在 SQL 中完成还是我需要 2 个单独的查询?我的桌子看起来和这个类似。
后端:SQL Server 2008
表名称:产品
ProductID ProductName 点击次数 添加日期
1 咖啡 600 2012 年 5 月 2 日
2 香草 800 2012 年 4 月 19 日
3 巧克力 3000 2012 年 3 月 25 日
4 奥利奥 200 2012 年 2 月 10 日
5 希思 250 2012 年 5 月 13 日
6 果子露 550 2012 年 4 月 20 日
7 摩卡咖啡 2000 年 3/22/2012
我希望查询结果返回如下:(巧克力优先 - 基于点击,其余 - 按日期降序排列)
3 巧克力 3000 3/25/2012
5 希思 250 2012 年 5 月 13 日
1 咖啡 600 2012 年 5 月 2 日
6 果子露 550 2012 年 4 月 20 日
2 香草 800 2012 年 4 月 19 日
7 摩卡 2000 2012 年 3 月 22 日
4 奥利奥 200 2/10/2012
任何帮助将不胜感激。我是 LINQ 菜鸟。
谢谢!
【问题讨论】:
-
您将需要两个查询;这两个选择器彼此不同。在没有 LINQ 的情况下,只在数据库中执行,你将如何用一个查询来完成这项工作?
-
您基本上是在查看两个不同的结果集,因此需要两个不同的查询
-
我总是想知道(如果数据集足够小)在一次往返数据库中获取所有数据然后在内存中进行额外排序而不是两次访问是否更有意义数据库。我没有真正测试过 - 只是一个想法。
标签: c# asp.net sql sql-server linq