我正在尝试对Teradata中的SQL查询进行分页。目前我有如下查询:
SELECT RANK(name) as rank_,id,name,address FROM tbl_users ORDER BY name
QUALIFY rank_ BETWEEN 1 and 5
我希望使用列‘NAME’以升序实现分页,但此查询获取的是结果集的最后五行。
例如,如果列‘name’的值类似于‘a’、‘b’、‘c’、‘d’、‘e’......‘v’、‘w’、‘x’、‘y’、‘z’
我预期的值顺序为‘a’、‘b’、‘c’、‘d’、‘e’,但我得到的是‘v’、‘w’、‘x’、‘y’、‘z’。
我如何修复此问题?
RANK(col)
是一个旧的推荐答案函数,已弃用超过15年。默认为降序,因此RANK(name ASC)
将返回预期结果。
但推荐的语法使用标准SQL:
RANK() OVER (ORDER BY name)