通用函数主要有两个:NVL(),DECODE(),这两个函数算是ORACLE自己的特色函数;

1.NVL()函数,处理 NULL

例子:查出每个雇员的全部年薪;

SQL> SELECT first_name,salary,commission_pct,(salary+commission_pct)*12 FROM employees;

FIRST_NAME               SALARY COMMISSION_PCT (SALARY+COMMISSION_PCT)*12
-------------------- ---------- -------------- --------------------------
Donald                     2600
Douglas                    2600
Jennifer                   4400
Michael                   13000
Pat                        6000
Susan                      6500
Hermann                   10000
Shelley                   12000
William                    8300
Steven                    24000
Neena                     17000

FIRST_NAME               SALARY COMMISSION_PCT (SALARY+COMMISSION_PCT)*12
-------------------- ---------- -------------- --------------------------
Lex                       17000
Alexander                  9000
Bruce                      6000
David                      4800
Valli                      4800
Diana                      4200
Nancy                     12000
Daniel                     9000
John                       8200
Ismael                     7700
Jose Manuel                7800

FIRST_NAME               SALARY COMMISSION_PCT (SALARY+COMMISSION_PCT)*12
-------------------- ---------- -------------- --------------------------
Luis                       6900
Den                       11000
Alexander                  3100
Shelli                     2900
Sigal                      2800
Guy                        2600
Karen                      2500
Matthew                    8000
Adam                       8200
Payam                      7900
Shanta                     6500

FIRST_NAME               SALARY COMMISSION_PCT (SALARY+COMMISSION_PCT)*12
-------------------- ---------- -------------- --------------------------
Kevin                      5800
Julia                      3200
Irene                      2700
James                      2400
Steven                     2200
Laura                      3300
Mozhe                      2800
James                      2500
TJ                         2100
Jason                      3300
Michael                    2900

FIRST_NAME               SALARY COMMISSION_PCT (SALARY+COMMISSION_PCT)*12
-------------------- ---------- -------------- --------------------------
Ki                         2400
Hazel                      2200
Renske                     3600
Stephen                    3200
John                       2700
Joshua                     2500
Trenna                     3500
Curtis                     3100
Randall                    2600
Peter                      2500
John                      14000             .4                   168004.8

FIRST_NAME               SALARY COMMISSION_PCT (SALARY+COMMISSION_PCT)*12
-------------------- ---------- -------------- --------------------------
Karen                     13500             .3                   162003.6
Alberto                   12000             .3                   144003.6
Gerald                    11000             .3                   132003.6
Eleni                     10500             .2                   126002.4
Peter                     10000             .3                   120003.6
David                      9500            .25                     114003
Peter                      9000            .25                     108003
Christopher                8000             .2                    96002.4
Nanette                    7500             .2                    90002.4
Oliver                     7000            .15                    84001.8
Janette                   10000            .35                   120004.2

这时有雇员的年薪变成了NULL,而造成这种问题的关键是在commission_pct字段上位NULL,那我们解决这个问题就必须做一种处理:将NULL变成“0”

SQL> SELECT first_name,salary,commission_pct,(salary+NVL(commission_pct,0))*12 FROM employees;

FIRST_NAME               SALARY COMMISSION_PCT (SALARY+NVL(COMMISSION_PCT,0))*12
-------------------- ---------- -------------- ---------------------------------
Donald                     2600                                            31200
Douglas                    2600                                            31200
Jennifer                   4400                                            52800
Michael                   13000                                           156000
Pat                        6000                                            72000
Susan                      6500                                            78000
Hermann                   10000                                           120000
Shelley                   12000                                           144000
William                    8300                                            99600
Steven                    24000                                           288000
Neena                     17000                                           204000

注意:NVL就是将NULL变为0.

2.DECODE()函数:多数值判断

DECODE()函数非常类似于程序中的if。。。else语句,不同的是DECODE()函数判断是数值,而不是逻辑条件。

例子:将雇员的职位替换成中文显示:

SH_CLERK:办事员

这种判断肯定是逐行判断,所以这时就必须用到DECODE()函数,而此时函数语法如下:

DECODE(数值 |列,判断值1,显示值1,判断值2,显示值2,判断值3,显示值3,...)

例子;实现显示操作功能

SQL> SELECT first_name,job_id,DECODE(job_id,'SH_CLERK','办事员') FROM employees;

FIRST_NAME           JOB_ID     DECODE
-------------------- ---------- ------
Donald               SH_CLERK   办事员
Douglas              SH_CLERK   办事员

注意:DECODE()函数是我们ORACLE中最有特点的函数,一定要掌握。

4.总结

SQL的基本语法是SELECT 、FROM、WHERE、ORADER BY 的关系;

HR用户的所有数据表的信息,包括列的名称,即作用和类型;

ORACLE中的几个单行函数,要记下来所有的函数都要求会使用;

转载于:https://blog.51cto.com/atxstrom/890207

SQL单行函数-通用函数相关推荐

  1. oracle数字加 39,Oracle数据库之SQL单行函数—数字函数-Oracle

    Oracle数据库之SQL单行函数-数字函数 1.三角函数 SIN  ASIN  SINH COS  ACOS  COSH TAN  ATAN  TANH 对于上述三角函数,见名知意.做一个间断的练习 ...

  2. oracler日期函数相差六个月_Oracle数据库之SQL单行函数---日期函数集锦

    前言 Oracle数据库的日期函数是十分强大的,而且也比较的多.笔者将之整理下来供日后的参考 使用.于自己便利,也于别人便利! 常用日期型函数 1.Sysdate: 当前的日期和时间select Sy ...

  3. Oracle filter 函数,Oracle数据库之SQL单行函数---字符函数续

    前一篇博客练习了一些字符函数,之后自己又去下查阅了相关的资料,上一篇博客中还有很多的 字符函数没有练习到,这次主要是对上次的一些未用到的字符函数进行一些补充练习. ascii() 返回与指定的字符对应 ...

  4. MySql基础篇---002 SQL之SELECT使用篇: 基本的SELECT语句,运算符,排序与分页,多表查询,单行函数,聚合函数,子查询

    第03章_基本的SELECT语句 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 1. SQL概述 1.1 SQL背景知识 1946 年,世界上第一台电脑 ...

  5. SQL语句之单行函数

    单行函数 1. 函数的理解 1.1 什么是函数 函数在计算机语言的使用中贯穿始终,函数的作用是什么呢?它可以把经常使用的代码封装起来,需要的时候直接调用即可.这样既提高了代码效率,又提高了可维护性.在 ...

  6. 加密解密,MySQL单行函数,数学函数字符串日期时间,流程控制,完整详细可收藏查询SQL

    前些天发现了十分不错的人工智能学习网站,通俗易懂,风趣幽默,没有广告,分享给大家,大家可以自行看看.(点击跳转人工智能学习资料) 文章目录 1.函数的理解 2.数值函数 2.1 基本函数 2.2 角度 ...

  7. sql复习(sql基础、过滤和排序数据、单行函数)

    一.sql基础 日期和字符只能在单引号 中出现 在select子句中使用关键字 distinct 删除重复行 select distinct department_id from employees; ...

  8. Oracle从零开始04——SQL语句03——单行函数

    5.单行函数 function_name(column|expression,[arg1,arg2,-]) 参数说明:function_name:函数名称 column:数据库列名 expressio ...

  9. SQL 基础之单行函数(七)

    单行 SQL 函数有如下几个分类: 字符函数 数字函数 使用日期 日期函数 函数的使用原来说白了就是在函数使用过程中加入符合定义的参数,然后执行函数就能输出结果值了. 单行函数和多行函数的区别: 单行 ...

最新文章

  1. [转]Passing data between pages in JQuery Mobile mobile.changePage
  2. 蚂蚁的难题(一) http://acm.nyist.net/JudgeOnline/status.php?pid=744
  3. Qt使用qss文件管理stylesheet
  4. 高级应用-路由协议配置
  5. 《 Linux的安装和入门 》
  6. ceph客户端使用_ceph存储之ceph客户端
  7. Github上点赞最多的10个Python项目(2020年3月)
  8. 非常棒的FLASH版本PPT制作工具PREZI
  9. java中随机生成汉字
  10. 这几种方法帮你快速实现回到页面顶部
  11. dex字符串解密_DEX文件混淆加密
  12. HBuilder快捷键整理集合
  13. 开机黑屏,硬盘灯不亮,没有自检画面,进不去bios
  14. python3 爬取半次元cosplay图片
  15. mysql---运维角度浅谈MySQL数据库优化
  16. 练习-CTF解题 - XMAN比赛 8-8-babyweb(netspark扫扫)
  17. 基于jira的缺陷自动化报表分析 (四)按人员统计缺陷情况
  18. 关于javascript的功能无法识别功能问题(引入jquery误操作和以及jquery对id的调取)
  19. 头歌-信息安全技术-Linux之用户管理
  20. Asp.net URL重定向后css路径问题

热门文章

  1. 的标题形状工具在哪里_一分钟教你做一款让人眼前一亮的标题!你想学吗?「Word技巧」...
  2. 嵌入式工程师是硬件工程师么‘_硬件工程师修炼真经
  3. mysql 按指定值排序
  4. 自动档汽车正确的操作方法和习惯---请教贴
  5. 做VB的,经常注册和反注册OCX控件和DLL链
  6. 计算机中那些事儿(九):资料管理一些建议---理论篇
  7. 联想战略储备看创投,联想创投All in智能互联网
  8. 加州无人车路测新添Lyft,中国公司Roadstar和长安也要去跑一跑
  9. 关于AI与高性能计算加速融合,这里有英伟达最新的4个应用案例
  10. 解释stateless worker