Google bigquery 如何在遗留SQL中对结果进行分页

Google bigquery 如何在遗留SQL中对结果进行分页,google-bigquery,legacy-sql,Google Bigquery,Legacy Sql,我们在一个特定的请求上使用遗留SQL。由于一些内部原因,我们不能使用标准SQL 我们希望对结果进行分页,因为我们有很多行。就像这样: SELECT ... FROM ... LIMIT 10000 30000 // In standard SQL 但在遗留SQL中,偏移量不存在。那么如何做同样的工作呢 编辑: 我不想点菜。我想翻页。例如,跳过2000行后获取1000行。带有偏移量的简单限制子句,类似于传统SQL数据库或BigQuery标准SQL。 为此,我想使用大查询遗留SQL。您所说的分页是

我们在一个特定的请求上使用遗留SQL。由于一些内部原因,我们不能使用标准SQL

我们希望对结果进行分页,因为我们有很多行。就像这样:

SELECT ... FROM ... LIMIT 10000 30000 // In standard SQL
但在遗留SQL中,偏移量不存在。那么如何做同样的工作呢

编辑:

我不想点菜。我想翻页。例如,跳过2000行后获取1000行。带有偏移量的简单限制子句,类似于传统SQL数据库或BigQuery标准SQL。
为此,我想使用大查询遗留SQL。

您所说的分页是通过API完成的

根据你的问题和后续评论,这可能是你的选择。即使它不涉及查询。只需选择客户端中的API或相关方法。
pageToken参数允许您分页结果
顺便说一句,这种方法的另一个好处是免费的

如果您仍然需要通过查询进行分页,您的选项是使用 在这种情况下,您可以使用下面的查询在临时表中准备数据

SELECT <needed fields>, ROW_NUMBER() OVER() num
FROM `project.dataset.table`
SELECT,行数()超过()个
来自“project.dataset.table”`
然后,可以使用num对其进行分页

SELECT <needed fields>
FROM `project.dataset.temp`
WHERE num BETWEEN 10000 AND 30000 
选择
来自“project.dataset.temp”`
其中num介于10000和30000之间

您所说的分页是通过API完成的

根据你的问题和后续评论,这可能是你的选择。即使它不涉及查询。只需选择客户端中的API或相关方法。
pageToken参数允许您分页结果
顺便说一句,这种方法的另一个好处是免费的

如果您仍然需要通过查询进行分页,您的选项是使用 在这种情况下,您可以使用下面的查询在临时表中准备数据

SELECT <needed fields>, ROW_NUMBER() OVER() num
FROM `project.dataset.table`
SELECT,行数()超过()个
来自“project.dataset.table”`
然后,可以使用num对其进行分页

SELECT <needed fields>
FROM `project.dataset.temp`
WHERE num BETWEEN 10000 AND 30000 
选择
来自“project.dataset.temp”`
其中num介于10000和30000之间

请澄清——您是否正在尝试获得排序结果?或者只是列出(通常未排序的)查询结果?您正在使用哪个客户端API?在编辑中完成。:)我询问您正在使用的API的原因(看起来您没有解决这个问题)是有明确的定义。或者你只是在使用用户界面?从你的问题上看不清楚。我可以理解,对于第一页,你并不关心订单,但一旦你要求第二页,你就会含蓄地介绍订单。我看到的一个选项——你们可能只需要第一页——所以可能只是随机的20000行?还有什么其他选择?那么,您真正的用例是什么?为什么你认为在没有订单的情况下需要分页?好的。我想一部分一部分地阅读表格的内容。此表没有插入、更新和删除。所以从我的观点来看,订单在请求之间不会改变,不是吗?现在,我们只使用UI,但最后,我们使用Node.js驱动程序。但通过阅读文档,我并不真正理解节点中的分页是如何工作的:It’谢谢你的帮助。请澄清——你是想得到分类结果吗?或者只是列出(通常未排序的)查询结果?您正在使用哪个客户端API?在编辑中完成。:)我询问您正在使用的API的原因(看起来您没有解决这个问题)是有明确的定义。或者你只是在使用用户界面?从你的问题上看不清楚。我可以理解,对于第一页,你并不关心订单,但一旦你要求第二页,你就会含蓄地介绍订单。我看到的一个选项——你们可能只需要第一页——所以可能只是随机的20000行?还有什么其他选择?那么,您真正的用例是什么?为什么你认为在没有订单的情况下需要分页?好的。我想一部分一部分地阅读表格的内容。此表没有插入、更新和删除。所以从我的观点来看,订单在请求之间不会改变,不是吗?现在,我们只使用UI,但最后,我们使用Node.js驱动程序。但通过阅读文档,我并不真正理解节点中的分页是如何工作的:It’谢谢你的帮助。