SQL数据仓库:'OFFSET'附近的语法不正确

时间:2017-11-17 09:09:44

标签: sql-server azure azure-sqldw

我在SQL数据仓库中尝试了一些功能。我正在使用SQL数据仓库提供的样本数据集尝试OFFSET。我收到了错误:Incorrect syntax near 'OFFSET'

我检查了数据库兼容性版本,它是130(SQL Server 2016)。以下是我正在尝试的查询:

SELECT [SalesQuotaKey]
      ,[EmployeeKey]
      ,[DateKey]
      ,[CalendarYear]
      ,[CalendarQuarter]
      ,[SalesAmountQuota]
  FROM [dbo].[FactSalesQuota]
  order by [SalesAmountQuota] desc
  OFFSET 0 ROWS  
    FETCH NEXT 10 ROWS ONLY;  

查询中是否有任何遗漏或我是否需要更改设置才能启用OFFSET?

2 个答案:

答案 0 :(得分:2)

AzureDW不支持per docs Offset Fetch

  

- Azure SQL数据仓库和并行数据仓库的语法

     

[订购方式       {
      order_by_expression
      [ASC | DESC]
      } [,... n]
  ]

您可以使用RowNumber(如下所示)在DW中simulate OFFSET Fetch

select * from 
(
SELECT [SalesQuotaKey]
      ,[EmployeeKey]
      ,[DateKey]
      ,[CalendarYear]
      ,[CalendarQuarter]
      ,[SalesAmountQuota],
Row_number() over (order by salesamount desc) as rownum
  FROM [dbo].[FactSalesQuota]

)tbl
where rownum between 1 and 10

答案 1 :(得分:1)

如果您只想要第一个'n'行,请使用TOP子句。

您想要分页行的用例是什么? ASDW并非真正针对此查询类型而设计,性能将受到影响。