问题描述
我们有Azure数据湖-数据以镶木地板文件格式存储。我们正在尝试使用Azure Synapse sql-on Demand从镶木地板文件中获取数据。
我们正在寻找的是-在获取数据时进行分页。因此,如果有10,000条符合条件的记录,我们只想在UI上返回100行,然后再返回100行,依此类推。 在SQL查询中,可以使用OFFSET / FETCH。
如何对sql按需查询执行此操作?这是我们的按需SQL查询示例。
SELECT * FROM
OPENROWSET
(
BULK '*.parquet',FORMAT='PARQUET'
)
AS rows
解决方法
目前,SQL点播不支持document中的偏移/获取。如今,突触工作区中没有可用的功能来进行分页。
,更新
OFFSET
/ FETCH
现在为officially supported by SQL OD,还有其他一些功能。
更新
只需尝试使用OFFSET
和FETCH
执行openrowset-现在就可以使用。
如this blog post中所述,SQL OD当前不支持OFFSET
/ FETCH
,但是有一些解决方法。
TOP偏移量+提取
SELECT *
FROM (
SELECT TOP (@fetch) *
FROM
(SELECT TOP(@offset+@fetch) *
FROM dbo.Supplier
ORDER BY S_SUPPKEY ASC
) AS topFO
ORDER BY S_SUPPKEY DESC
) AS bottomF
ORDER BY S_SUPPKEY ASC
ROW_NUMBER窗口
SELECT TOP (@fetch) *
FROM
( SELECT ROW_NUMBER() OVER(ORDER BY S_SUPPKEY) AS RowNum,*
FROM dbo.Supplier AS tr) AS data
WHERE @offset < RowNum
ORDER BY data.S_SUPPKEY