sql - SQL Azure 中是否支持 PARTITION BY ... ORDER BY

标签 sql sql-server azure

我真的很苦恼这个问题,非常感谢任何帮助!我有下面的 SQL 语句,它在 SQL 2012 中完美执行,但在 Azure 中不执行,并显示以下消息:

Msg 40517, Level 15, State 1, Line 2
Keyword or statement option 'ORDER BY' is not supported in this version of SQL Server.

从谷歌搜索我已经完成了 PARTITION BY... 支持 ORDER BY 吗? http://msdn.microsoft.com/en-us/library/ms187810.aspx

SQL Azure and support for CTE syntax?

我已将失败的 SQL 代码粘贴在下面:

SELECT        isnull(ROW_NUMBER() OVER (ORDER BY s.Id), 0) AS Id, DATEPART(YEAR, DATEADD(WEEK, s.SystemWeekId, GETDATE())) AS PredictedYear, DATEPART(MONTH, 
DATEADD(WEEK, s.SystemWeekId, GETDATE())) AS PredictedMonth, s.SystemWeekId AS SystemWeek, s.VehicleId, 
(SUM(s.AverageWeeklyKms) OVER (PARTITION BY s.VehicleId ORDER BY s.Id) + NextServiceKilometres) CalculatedKilometres, 
CAST(CASE WHEN (((FLOOR((SUM(s.AverageWeeklyKms) OVER (PARTITION BY s.VehicleId ORDER BY s.Id) + NextServiceKilometres) / 1000)) * 1000)) % PreventativeKilometreInterval = 0 THEN
    (SELECT        ServiceTypeId
      FROM            ServiceTypes
      WHERE        ServiceTypeDescription =
                                    (SELECT        ParameterValue
                                      FROM            SystemParameters
                                      WHERE        ParameterName = 'PreventativeService')) WHEN (((FLOOR((SUM(s.AverageWeeklyKms) OVER (PARTITION BY s.VehicleId
ORDER BY s.Id) + NextServiceKilometres) / 1000)) * 1000)) % MajorKilometreInterval = 0 THEN
    (SELECT        ServiceTypeId
      FROM            ServiceTypes
      WHERE        ServiceTypeDescription =
                                    (SELECT        ParameterValue
                                      FROM            SystemParameters
                                      WHERE        ParameterName = 'MajorService')) WHEN (((FLOOR((SUM(s.AverageWeeklyKms) OVER (PARTITION BY s.VehicleId
ORDER BY s.Id) + NextServiceKilometres) / 1000)) * 1000)) % MinorKilometreInterval = 0 THEN
    (SELECT        ServiceTypeId
      FROM            ServiceTypes
      WHERE        ServiceTypeDescription =
                                    (SELECT        ParameterValue
                                      FROM            SystemParameters
                                      WHERE        ParameterName = 'MinorService')) ELSE 0 END AS INT) AS ServiceTypeId
FROM            Temp  AS s

最佳答案

Azure Sql 数据库服务器版本 V12 支持 PARTITION BY...ORDER BY: https://msdn.microsoft.com/en-us/library/ms187810.aspx

关于sql - SQL Azure 中是否支持 PARTITION BY ... ORDER BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25085021/

相关文章:

mysql - 如何提高静态网站的 WordPress GraphQL 服务器的效率

php - MySQL数据库结构

azure - 在服务结构中使用的环境变量 ASPNETCORE_ENVIRONMENT 是什么

azure - 从 terraform Output 获取数据并将其用作输入

asp.net - IIS 工作进程崩溃

sql - SQL 存储过程中的 "referencing old"和 "referencing new"有什么区别?

c# - 带聚合的分页投影 nhibernate 查询的总结果

java - Java 中的父类和子类应该有 2 个数据表吗?

sql-server - 如何将值合并到日期时间中

sql - 是否有等效的 excel 到 sql 查询的综述?