我正在尝试使用 JDBC 从 Teradata 获取大量记录。我需要将这个集合分解成我在选择中使用“Top N”子句的部分。
但我不知道如何像我们在 MySQL 中所做的那样设置“偏移量” -
SELECT * FROM tbl LIMIT 5,10
这样下一个 select 语句将从第 (N+1) 个位置获取记录。
最佳答案
排名和资格我相信你的 friend 在这里
例如
SEL RANK(custID), custID
FROM mydatabase.tblcustomer
QUALIFY RANK(custID) < 1000 AND RANK(custID) > 900
ORDER BY custID;
RANK(field) 将(概念上)检索结果集的所有行,
通过 ORDER BY 字段对它们进行排序,并为它们分配一个递增的等级 ID。
QUALIFY 允许您通过限制返回到限定表达式的行来对其进行切片,现在可以合法地查看 RANK。
明确地说,我将返回查询中的第 900-1000 行 select all from cusotmers,
不返回 ID 介于 900 和 1000 之间的客户。
关于sql - Teradata - 使用 TOP 限制结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7306179/