我在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?
答案 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并非真正针对此查询类型而设计,性能将受到影响。