当前位置: 首页 > news >正文

通用函数

目录

处理null

多数值判断


Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645

Oracle 提供了两个简单的数据处理函数: nvl()、decode()。在版本升级的过程中,这两个函数又衍生出了许多子函数

处理null

下面首先通过查询,计算出每一个员工的年薪,包括基本工资和佣金

SQL> select empno,ename,job,sal,comm,(sal+comm)*12 income2  from emp;EMPNO ENAME                JOB                       SAL       COMM     INCOME
---------- -------------------- ------------------ ---------- ---------- ----------7369 SMITH                CLERK                     8007499 ALLEN                SALESMAN                 1600        300      228007521 WARD                 SALESMAN                 1250        500      210007566 JONES                MANAGER                  29757654 MARTIN               SALESMAN                 1250       1400      318007698 BLAKE                MANAGER                  28507782 CLARK                MANAGER                  24507839 KING                 PRESIDENT                50007844 TURNER               SALESMAN                 1500          0      180007900 JAMES                CLERK                     9507902 FORD                 ANALYST                  3000

可以发现,com 和 income 列中有许多是空的

上述现象的原因在于,所有没有佣金的员工,在进行年收入计算的时候,最终的计算结果都是null,因为 nul 在进行任何数学计算后结果永远都是 null。而实际上在计算过程中,如果发现数字内容为 null,则应该使用 0 来替代,这时就需要利用 nvl() 函数来解决此类问题

nvl( 列 | null,为空的默认值 )

如果列上的内容不是 null,则使用列的数据;如果为 null,则使用默认值

SQL> select empno,ename,job,sal,comm,nvl(comm,0),(sal+nvl(comm,0))*12 income2  from emp;EMPNO ENAME                JOB                       SAL       COMM NVL(COMM,0)     INCOME
---------- -------------------- ------------------ ---------- ---------- ----------- ----------7369 SMITH                CLERK                     800                      0       96007499 ALLEN                SALESMAN                 1600        300         300      228007521 WARD                 SALESMAN                 1250        500         500      210007566 JONES                MANAGER                  2975                      0      357007654 MARTIN               SALESMAN                 1250       1400        1400      318007698 BLAKE                MANAGER                  2850                      0      342007782 CLARK                MANAGER                  2450                      0      294007839 KING                 PRESIDENT                5000                      0      600007844 TURNER               SALESMAN                 1500          0           0      180007900 JAMES                CLERK                     950                      0      114007902 FORD                 ANALYST                  3000                      0      36000

这个查询使用函数 NVL(comm,0),把 com 列所有的 nul 都替换为 0

多数值判断

所谓的多数值判断,指的是在输出的时候,对不同的结果分别进行数据转换。例如,每一位员工的职位使用的都是英文描述,在输出查询结果时决定将其更换为中文

decode( 列,匹配内容 1,显示内容 1,匹配内容 2,显示内容 2,...[,默认值 ])
SQL> select empno,ename,job,decode(job,'CLERK','办事员','SALESMAN','销售','MANAGER','经理','ANALYST','分析','PRESIDENT','总裁','暂无此 消息')2  from emp;EMPNO ENAME                JOB                DECODE(JOB,'CLERK','办事员','S
---------- -------------------- ------------------ ------------------------------7369 SMITH                CLERK              办事员7499 ALLEN                SALESMAN           销售7521 WARD                 SALESMAN           销售7566 JONES                MANAGER            经理7654 MARTIN               SALESMAN           销售7698 BLAKE                MANAGER            经理7782 CLARK                MANAGER            经理7839 KING                 PRESIDENT          总裁7844 TURNER               SALESMAN           销售7900 JAMES                CLERK              办事员7902 FORD                 ANALYST            分析

可以发现每一位员工职位的英文描述更换为了中文

http://www.lryc.cn/news/293846.html

相关文章:

  • Linux 查看系统信息 + 服务信息命令(简记)
  • 有了Future为什么还要CompletableFuture?
  • Android super.img解包和打包指南(含工具下载lpunpack、lpmake、lpdump)
  • 端到端实现高精地图重建(TopoNet解读和横评)
  • 系统架构20 - 统一建模语言UML(上)
  • 数据库学习笔记2024/2/4
  • Apache POI 处理excel文件 记录用法
  • Transformer实战-系列教程2:Transformer算法解读2
  • python_蓝桥杯刷题记录_笔记_全AC代码_入门3
  • STM32 IIC电量计LTC2944
  • Linux 链接 GitHub 出现 Connection timed out
  • vulnhub靶场之Thales
  • Qt之使用Qt内置图标
  • 《计算机网络简易速速上手小册》第10章:未来网络技术趋势(2024 最新版)
  • Vue引入Axios
  • 【git 本地管理版本及与github合并】 Init Push Pull操作解决方案
  • JavaSE-项目小结-IP归属地查询(本地IP地址库)
  • 使用最大边界相关算法处理文章自动摘要
  • ref和reactive, toRefs的使用
  • 从源代码看Chrome 版本号
  • Vue 图片加载失败处理
  • Quartus IP学习之ISSP(In-System Sources Probes)
  • Vue组件通信讲解[父子组件通信]
  • Qt应用开发(安卓篇)——调用ioctl、socket等C函数
  • centos 安装docker CE
  • 某赛通电子文档安全管理系统 UploadFileList 任意文件读取漏洞复现
  • Kafka运维相关知识
  • 鸿蒙Native项目生产动态库(.so) 和静态库(.a)
  • B站课程评分
  • 【C++】拷贝构造函数和赋值运算符重载详解