我正在尝试在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”。 我该如何解决这个问题?
答案 0 :(得分:1)
RANK(col)
是旧的Teradata函数,自15年以来被弃用。它默认为降序排序,因此RANK(name ASC)
将返回预期结果。
但推荐的语法使用标准SQL:
RANK() OVER (ORDER BY name)