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

SQL Data warehouse: Incorrect syntax near 'OFFSET'

我正在尝试 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?

因为 per docs AzureDW 不支持偏移获取

-- Syntax for Azure SQL Data Warehouse and Parallel Data Warehouse

[ ORDER BY
{
order_by_expression
[ ASC | DESC ]
} [ ,...n ]
]

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

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

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

您希望对行进行分页的用例是什么? ASDW 并不是真正为这种查询类型设计的,性能会受到影响。