数据库教程:入职后回顾数据库知识(六)

NVL()函数:NVL(expr1,expr2)–如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。NVL2()函数:NVL2(expr1,expr2,expr3)–含义是:如果Oracle中第一个参数的值为空,那么显示第二个参数的值,如果第一个参数的值不为空,那么显示第三个参数的值。NULLIF()函数:NULLIF(expr1,expr2)–含义是:如果第一个参数的值等于第二个参数的值则返回空,否则返回第一个值。ROW


NVL()函数:

NVL(expr1,expr2) --如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。 

NVL2()函数:

NVL2(expr1,expr2,expr3) --含义是:如果Oracle中第一个参数的值为空,那么显示第二个参数的值,如果第一个参数的值不为空,那么显示第三个参数的值。 

NULLIF()函数:

NULLIF(expr1,expr2) --含义是:如果第一个参数的值等于第二个参数的值则返回空,否则返回第一个值。 

ROWNUMBER() OVER PARTISTION BY() 分组聚合:

ROW_NUMBER() OVER(     [PARTITION BY column_1, column_2,]     [ORDER BY column_3,column_4,] ) 

分组聚合,就是先分组再排序,可以的话顺手标个排名;如果不想分组也可以排名;如果不想分组同时再去重排名也可以

select row_number() over(partition by A order by B ) as rowIndex from table 

A:为分组字段
B:为分组后的排序字段。
  table 表的结构 多为: 多人 多条的相关数据。(比如:订单信息)
  此条sql语句,多用于对数据进行分组排序,并对每个组中的数据分别进行编号,编号从1开始递增,每个组内的编号不会重复;

row_number() over()排序功能:

在使用 row_number() over()函数时候,over()里头的分组以及排序的执行晚于 where group by order by 的执行。
partition by 用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组,它和聚合函数不同的地方在于它能够返回一个分组中的多条记录,而聚合函数一般只有一个反映统计值的记录。

需要了解更多数据库技术:入职后回顾数据库知识(六),都可以关注数据库技术分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/dtteaching/795871.html

(0)
上一篇 2021年9月10日
下一篇 2021年9月10日

精彩推荐