gpt4 book ai didi

sql - Azure Synapse SQL 按需分页(OFFSET/FETCH)

转载 作者:行者123 更新时间:2023-12-03 02:32:21 25 4
gpt4 key购买 nike

我们有 Azure 数据湖 - 数据以 parquet 文件格式存储。我们正在尝试使用 Azure synapse SQL-on Demand 从 parquet 文件中获取数据。

我们正在寻找的是 - 获取数据时的分页。因此,如果有 10,000 条记录符合条件,我们只想在 UI 上返回 100 行,然后返回下 100 行,依此类推。在SQL查询中,我们可以使用OFFSET/FETCH。

如何为 SQL 按需查询做这样的事情?这是我们的按需 SQL 查询示例。

  SELECT * FROM 
OPENROWSET
(
BULK '*.parquet',
FORMAT='PARQUET'
)
AS rows

最佳答案

更新

OFFSET/FETCH 现在是 officially supported by SQL OD ,以及一些其他功能。

更新

刚刚尝试使用 OFFSETFETCH 执行 openrowset - 现在可以工作了。

<小时/>

this blog post 中所述, SQL OD 当前不支持 OFFSET/FETCH,但是有一些解决方法。

顶部偏移+获取

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

关于sql - Azure Synapse SQL 按需分页(OFFSET/FETCH),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64574624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com