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 并不是真正为这种查询类型设计的,性能会受到影响。
我正在尝试 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 并不是真正为这种查询类型设计的,性能会受到影响。