我正在尝试使用 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/

10-13 05:17