原标题:ORACLE中你不能不知道的十个小知识
几周前团队的大神曾为大家整理和分享了多个PYTHON实用小技巧【这里是传送门:https://mp.weixin.qq.com/s/KOL9l_eG-JXqMH0p4a2Ymg】,笔者学习后颇受启发,结合自己近半年来与ORACLE相爱相杀的经历,决定向大家分享一下我心中的十个ORACLE必备小知识。
笔者虽是计算机专业出身,但对Oracle的学习仅限于大学时期老师在课堂上讲授的基础DML(DataManipulation Language,数据操作语言)和DDL(DataDefinition Language,数据定义语言), 因此在最开始做Data Request时,每天最头疼的莫过于要将复杂的业务逻辑转化成有条理的SQL语言,如今已过去快小半年,写SQL的本领虽不至于炉火纯青,但也算是有了一些小心得,所以本篇公众号就想把这些小心得分享给大家。
假设我们有如下数据集,命名为temp_table,其中“编号”列为主键【此数据集为笔者虚构,如有雷同纯属巧合】
在orcacle中如下图所示:
一、 条件判断语句CASE WHEN 和 DECODE
(1)CASE WHEN语句:
语法:
如果条件1成立,那么返回返回值1;如果条件2成立,那么返回返回值2;……
以此类推,如果所有条件都不满足,那么返回默认值。
常见应用场景:(包含但不限于)
·当需要找出符合某个条件或某些条件的数据时;
·进行等值/范围转换时;
·……
举例:
在temp_table中找出出生地为北京或天津的女性,归为TYPE1;出生地为上海或重庆的男性,归为TYPE2;其余的归为OTHERS。
(2)DECODE函数
语法:
如果条件/列= 列值1,那么返回返回值1;如果条件/列= 列值2,那么返回返回值2;…..以此类推,如果所有条件都不满足,那么返回默认值。
常见应用场景:(包含但不限于)
·一般用于等值判断。
注意:DECODE只有Oracle才有,用法相对于CASEWHEN语句来说要简洁很多,但没有CASE WHEN 语句灵活性高。
举例:
对temp_table中的性别进行编码,若为女性则编码为0,男性编码为1。
二、分析函数RO