从雪花中批量读取行

Read rows in batches from snowflake

在mysql中,如果我必须一次读取10行,我可以将查询写成

select * from foo limit 10, 10

然后我可以继续增加偏移量并读取整个 table。

如何在雪花中做同样的事情?

我试过了

select a, b from (select a, b from foo) tempview where rownum <= 100;

但这不起作用。

Snowflake 支持与 MySQL 非常相似的语法,您只需编写

select * from foo limit 10 offset 10;

查看 Snowflake documentation for LIMIT 了解更多详细信息和选项。

注意 - 如果您想像这样扫描 table,对于大型 table,它可能并不总是最有效的方法,因为您会看到每个查询都有一些开销。在客户端迭代结果可能是更好的选择。

最后,如果您想遍历复杂查询的结果,并且出于某种原因确实想使用 LIMIT 方法,您可以 运行 您的查询,然后使用RESULT_SCAN 迭代结果。这样您就不会多次重新运行查询。