源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

SQLServer 获得用户最新或前n条订单的几种SQL语句小结

  • 时间:2020-05-12 13:18 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:SQLServer 获得用户最新或前n条订单的几种SQL语句小结
实现以上要求,我们可以用以下几种方式,但是效率却相差很远。 首先我们在Order表中,创建一个索引: CREATE UNIQUE INDEX idx_eid_odD_oidD ON Orders(EmployeeID,OrderDate DESC,OrderID DESC)   多个OrderId是为了在OrderData相同的情况下,按订单号倒序,是个辅助属性。 方法1:  
[url=http://www.1sucai.cn/article/28105.htm]http://www.1sucai.cn/article/28105.htm[/url] 方法4:
[u]复制代码[/u] 代码如下:
SELECT O1.EmployeeID,O1.OrderID FROM Orders O1 JOIN ( SELECT ROW_NUMBER() OVER(PARTITION BY EmployeeID ORDER BY OrderDate DESC,OrderID DESC) AS RowNumber,* FROM Orders AS OT ) AS O2 ON O1.OrderID = O2.OrderID WHERE O2.RowNumber = 1
这个ROW_NUMBER函数也是在SQL Server 2005后新增的,使用这个和方法3查不多,甚至比3更好,但要注意一点是先按EmployeeID分区,然后再排序。 结合以上方法, 建议用方法3。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部