Oracle分析函数之NTH_VALUE 详解

NTH_VALUE:获取排序后结果集中任意一行,而不会仅仅第一行或最后一行!

Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0

[sql]  view plain copy
  1. SQL> SELECT NTH_VALUE(T.SNAME, 3) FROM FIRST OVER() AS 第三名,  
  2.   2         NTH_VALUE(T.SNAME, 2) FROM LAST OVER() AS 倒数第二名,   
  3.   3         T.*  
  4.   4    FROM STUDENT T  
  5.   5   ORDER BY AGE;  
  6. 第三名     倒数第二名    SNO SNAME             AGE  
  7. ---------- ---------- ----- ---------- ----------  
  8. KAY        CHAD           6 JING               18  
  9. KAY        CHAD           4 MAGGIE             19  
  10. KAY        CHAD           8 KAY                20  
  11. KAY        CHAD           1 AARON              20  
  12. KAY        CHAD           3 DOUG               20  
  13. KAY        CHAD           9 GILLIAN            20  
  14. KAY        CHAD           7 BRIAN              21  
  15. KAY        CHAD           2 CHUCK              21  
  16. KAY        CHAD          10 CHAD               21  
  17. KAY        CHAD           5 STEVE              22  
  18. 10 rows selected  
  19.   
  20. SQL>   

NTH_VALUE :第一个参数为列名,第二个参数为窗口位移量(例如:nth_value(SNAME,2))。

from first和respect_nulls为默认值。

FROM FIRST从窗口的第一行开始寻找位移后的数据行。

FROM LAST:从窗口的第一行开始寻找位移后的数据行。

RESPECT NULLS :如果在位移行中包含空值则将会返回空值。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谭祖爱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值