我们正在针对特定请求使用旧版SQL。出于某些内部原因,我们无法使用标准SQL。
我们想对结果进行分页,因为我们有很多行。像那样:
SELECT ... FROM ... LIMIT 10000 30000 // In standard SQL
但在Legacy SQL Offset中不存在。那么如何做同样的工作?
编辑:
我不想订购。我想分页。例如,在跳过2000行后获得1000行。带有偏移量的简单LIMIT子句,如传统SQL数据库或BigQuery Standard SQL中的类似。 为此,我想使用Big Query Legacy SQL。
答案 0 :(得分:3)
您所谈论的分页是通过tabledata.list
API
根据您的问题和后续评论 - 这可能是您前进的方式。即使它不涉及查询。在您选择的客户端中使用API或相关方法
pageToken参数允许您翻页结果
顺便说一句,这种方法的另一个好处 - 它是免费的
如果您仍需要通过查询进行分页 - 您选择使用ROW_NUMBER()
在这种情况下 - 您可以使用以下查询
SELECT <needed fields>, ROW_NUMBER() OVER() num
FROM `project.dataset.table`
然后,您可以使用num
进行分页SELECT <needed fields>
FROM `project.dataset.temp`
WHERE num BETWEEN 10000 AND 30000