当前位置: 移动技术网 > IT编程>数据库>Oracle > 入职后回顾数据库知识(六)

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

2020年07月30日  | 移动技术网IT编程  | 我要评论

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 用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组,它和聚合函数不同的地方在于它能够返回一个分组中的多条记录,而聚合函数一般只有一个反映统计值的记录。

本文地址:https://blog.csdn.net/Guo_Yu_tian/article/details/107641971

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网