zoukankan      html  css  js  c++  java
  • 排序分析函数中对null的处理

    --排序分析函数中对null的处理
    --分析:对于null在分析函数中是升序默认是nulls last,降序默认是nulls first。如果不指定排序,那么是升序
    create table test(id number,name varchar2(20));
    insert into test values(1,'测试1');
    insert into test values(1,'测试2');
    insert into test values(1,'测试3');
    insert into test values(2,'测试4');
    insert into test values(2,'测试5');
    insert into test values(3,'测试6');
    insert into test values(3,'测试7');
    insert into test values(4,'测试8');
    insert into test values(null,'测试9');
    insert into test values(null,'测试10');
    
    commit;
    
    --null默认是按nulls last升序 
    SQL> select id,
      2         name,
      3         row_number()over(order by id) rn,
      4         dense_rank()over(order by id) drk,
      5         rank()over(order by id) rk
      6    from test;
     
            ID NAME                         RN        DRK         RK
    ---------- -------------------- ---------- ---------- ----------
             1 测试1                         1          1          1
             1 测试2                         2          1          1
             1 测试3                         3          1          1
             2 测试4                         4          2          4
             2 测试5                         5          2          4
             3 测试6                         6          3          6
             3 测试7                         7          3          6
             4 测试8                         8          4          8
               测试9                         9          5          9
               测试10                       10          5          9
     
    10 rows selected
    
    --最后的执行结果对null值进行了处理,nulls first(降序)
    SQL> select id,
      2         name,
      3         row_number()over(order by id nulls first) rn,
      4         dense_rank()over(order by id) drk,
      5         rank()over(order by id desc nulls first) rk
      6    from test;
     
            ID NAME                         RN        DRK         RK
    ---------- -------------------- ---------- ---------- ----------
               测试10                        1          5          1
               测试9                         2          5          1
             1 测试2                         3          1          8
             1 测试1                         4          1          8
             1 测试3                         5          1          8
             2 测试4                         6          2          6
             2 测试5                         7          2          6
             3 测试6                         8          3          4
             3 测试7                         9          3          4
             4 测试8                        10          4          3
     
    10 rows selected
  • 相关阅读:
    Nginx编译安装
    Docker下mysql容器开启binlog日志(保留7天)
    podman
    error: audit:backlog limit exceeded
    64位win2003/win2008系统IIS6.0/7.5配置PHP的方法
    iis7.5安装配置php环境详细清晰教程,三步实现【图文】
    Windows下IIS+PHP 5.2的安装与配置
    无线路由MAC地址过滤安全可靠性讨论
    debian flam3 源码
    debian flam3 依赖文件
  • 原文地址:https://www.cnblogs.com/huangbiquan/p/8001761.html
Copyright © 2011-2022 走看看