一、概述

  以下内容完整参阅,参考官方文档函数手册部分:https://docs.oracle.com/cd/E11882_01/nav/portal_5.htm

  离线chm手册英文版:链接:https://pan.baidu.com/s/1o85jQ9G 密码:ssyj——(若无法显示正文,在文件上右键属性-解除锁定即可!

  什么是单行函数:

操作数据对象
接受参数返回一个结果
只对一行进行变换
每行返回一个结果
可以转换数据类型
可以嵌套
参数可以是一列或一个值

 

  // 比如分组函数就是典型的多行函数

   分类:

  

二、字符函数

  大小写控制函数:

      LOWER()——转化为小写

    UPPER()——转化为大写

    INITCAP()——首字母大写

SELECT LOWER('SQL Course'),UPPER('SQL Course'),INITCAP('SQL Course') FROM dual;LOWER('SQLCOURSE') UPPER('SQLCOURSE') INITCAP('SQLCOURSE')
------------------ ------------------ --------------------
sql course         SQL COURSE         Sql Course

  // dual是一张虚表,并且再次提醒SQL大小写不敏感,lower()也是允许的

  字符控制函数:

      CONCAT('Hello', 'World')——连接字符串

    SUBSTR('HelloWorld',1,5)——取子串,从下标1开始,取5个(SQL下标从1开始而不是0)

    LENGTH('HelloWorld')——得到长度

    INSTR('HelloWorld', 'W')——首次出现的位置

    LPAD(salary,10,'*')——左补齐

    RPAD(salary, 10, '*')——右补齐

    TRIM('H' FROM 'HelloWorld')——去除首尾的指定字符

    REPLACE(‘abcd’,’b’,’m’)——替换所有的字符,(将b替换为m)

SELECT CONCAT('HelloWorld','jiangbei'),SUBSTR('HelloWorld',1,5),LENGTH('HelloWorld'),INSTR('HelloWorld','W') FROM dual;CONCAT('HELLOWORLD','JIANGBEI' SUBSTR('HELLOWORLD',1,5) LENGTH('HELLOWORLD') INSTR('HELLOWORLD','W')
------------------------------ ------------------------ -------------------- -----------------------
HelloWorldjiangbei             Hello                                      10                       6

SELECT LPAD(salary,10,'*') FROM employees;LPAD(SALARY,10,'*')
--------------------
*****24000
*****17000
*****17000
******9000
******6000

SELECT TRIM('H' FROM 'H2H2H'),REPLACE('H2H2H2','H','M') FROM dual;TRIM('H'FROM'H2H2H') REPLACE('H2H2H2','H','M')
-------------------- -------------------------
2H2                  M2M2M2

三、数字函数

  ROUND(45.926,2)——四舍五入

  TRUNC(45.926,2)——截断

  MOD(100,3)——求余

SELECT ROUND(45.926,2),TRUNC(45.926,2),MOD(100,3) FROM dual;ROUND(45.926,2) TRUNC(45.926,2) MOD(100,3)
--------------- --------------- ----------45.93           45.92          1

四、日期函数

  SYSDATE——返回日期与时间

select sysdate from dual;

  日期数字运算:

在日期上加上或减去一个数字结果仍为日期。两个日期相减返回日期之间相差的天数。
日期不允许做加法运算,无意义可以用数字除24来向日期中加上或减去天数。

  日期函数

  

ADD_MONTHS ('11-JAN-94',6)——'11-JUL-94'

五、转换函数

  隐式转换

  

  显示转换函数

   

    TO_CHAR(date, 'format_model')——日期转化为字符型

                    日期格式如下;yyyy 年 mm 月 dd 日 day 星期 hh 小时 mi 分钟 ss 秒

    TO_DATE('char','format_mldel')——字符转化为日期

    TO_CHAR(number, 'format_model')——数字转字符

SELECT TO_CHAR(1234567.89,'999,999,999.99')

     

   TO_NUMBER(‘¥1,234,567,890.00’,’L999,999,999,999.99’)

六、通用函数

  这些函数适用于任何数据类型,同时也适用于空值:

  NVL (expr1, expr2)——空值转化为指定值

  NVL2 (expr1, expr2, expr3)——expr1不为NULL,返回expr2;为NULL,返回expr3。

  NULLIF (expr1, expr2)——相等返回NULL,不等返回expr1

  COALESCE (expr1, expr2, ..., exprn)——交替判断是否为空:若expr1为空,返回expr2;若expr2为空,返回expr3;依次类推

七、条件表达式

    SQL中使用IF/ELSE可以有两种方式:

      CASE表达式;

  语法:

CASE expr WHEN comparison_expr1 THEN return_expr1[WHEN comparison_expr2 THEN return_expr2WHEN comparison_exprn THEN return_exprnELSE else_expr]
END

  示例:

SELECT employee_id,last_name,department_id,CASE department_id WHEN 10 THEN salary*1.1WHEN 20 THEN salary*1.2ELSE salary*1.3END AS NEW_SAL
FROMemployees
WHEREdepartment_id IN (10,20,30)

 // 如果后面不使用别名,将会生成内置别名

EMPLOYEE_ID LAST_NAME                 DEPARTMENT_ID    NEW_SAL
----------- ------------------------- ------------- ----------114 Raphaely                             30      14300115 Khoo                                 30       4030116 Baida                                30       3770117 Tobias                               30       3640118 Himuro                               30       3380119 Colmenares                           30       3250200 Whalen                               10       4840201 Hartstein                            20      15600202 Fay                                  20       72009 rows selected

   更多CASE用法,参考:http://blog.itpub.net/27042095/viewspace-739106/

     DECODE函数;

  语法:

DECODE(col|expression, search1, result1 ,[, search2, result2,...,][, default])

decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)

  示例:

SELECT last_name, job_id, salary,DECODE(job_id, 'IT_PROG',  1.10*salary,'ST_CLERK', 1.15*salary,'SA_REP',   1.20*salary,salary)REVISED_SALARY
FROM   employees;

转载于:https://www.cnblogs.com/jiangbei/p/8179258.html

Oracle入门第二天(下)——单行函数相关推荐

  1. Shell编程入门(第二版)(下)

    流程控制语句 三.select/in[较少用] 格式: [python] view plaincopy select [变量] in [关键字] do command 1 ... ... comman ...

  2. 【python入门第二十二天】python函数-匿名函数

    匿名函数 匿名函数 匿名函数的应用 匿名函数当做实参 匿名函数 当我们在创建函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便.这省去了我们挖空心思为函数命名的麻烦,也能少写不少代码,很多 ...

  3. Oracle入门必读

    Oracle在数据库领域占有率和影响极大,公司规模仅次于微软,但知名度却远远不及HP.IBM.微软那样家喻户晓.除了计算机专业的学生可能听说过数据库管理员,很多打算进入IT行业的学生并不确切知道Ora ...

  4. SQL单行函数-通用函数

    通用函数主要有两个:NVL(),DECODE(),这两个函数算是ORACLE自己的特色函数: 1.NVL()函数,处理 NULL 例子:查出每个雇员的全部年薪: SQL> SELECT firs ...

  5. 数据库 day60,61 Oracle入门,单行函数,多表查询,子查询,事物处理,约束,rownum分页,视图,序列,索引

    1.    oracle介绍 ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的 ...

  6. Oracle入门(十三A2)之单行函数

    一.函数介绍 功能: 改变数据输出形式或进行数据运算输出 二.单行函数 函数格式                    函数说明 abs(n)                      返回n的绝对值 ...

  7. oracle 数字处理函数,Oracle函数-单行函数-数字、日期、日期处理函数

    函数的分类 单行函数:一个input对应一个output,input和output存在一一对应的关系 如lower 组函数:多个input,但是只对应一个output.如 sum() ======== ...

  8. Oracle入门(十四D)之常规函数

    一.NULL处理 (1)函数的计算过程 到目前为止,您已经学会了在简单语句中应用单行函数.不过,函数可以嵌套任意层.所以,了解嵌套函数的计算过程非常重要.下例就是一个嵌套函数.其计算过程是从最里层开始 ...

  9. Oracle——函数(单行函数、分组函数、分析函数)

    Oracle SQL 提供了用于执行特定操作的专用函数.这些函数大大增强了 SQL 语言的功能. SQL函数的分类: 单行函数 对每一个函数应用在表的记录中时,只能输入一行结果,返回一个结果,可以出现 ...

最新文章

  1. HashMap的容量(桶的数量)为什么要是2的n次方
  2. gradle下bug修正后问题仍存在解决思路
  3. centos samba 看不到共享目录_samba共享服务
  4. ibernate 配置数据库方言
  5. python应用系列教程——python使用SocketServer实现网络服务器,socket实现客户端
  6. 循环输出26个字母C语言,菜鸟求助,写一个随机输出26个英文字母的程序
  7. Yarn resourceManager 无法启动
  8. Centos下安装nginx步骤解析
  9. android Camera framework层解析
  10. c语言程序设计爱心图片,c语言爱心图片表白程序源代码
  11. java-word转pdf时的异常积累
  12. python解决八数码问题_python八数码
  13. 上线app store,去掉图标透明色
  14. 数字电路复位电路解析
  15. 平面视觉(二):一键还原父母儿时的记忆
  16. axios在ie浏览器下提示promise未定义
  17. veu3.0 入门到精通
  18. mysql alter 改密码_MySql修改密码
  19. 如何制作一个简单的html网页
  20. JDK 11 API中文帮助文档.CHM文档无法打开问题

热门文章

  1. AR人工智能模型训练计算机,ar人工智能模型训练一般采用什么计算机
  2. gentry同态加密算法_IBM同态加密技术重大突破,加解密速度可提升75倍
  3. git 分支管理策略(7)
  4. 【BZOJ4318】OSU!【期望DP】
  5. 贪心法—— LeetCode45 跳跃游戏II(跳跃游戏进阶版)
  6. 2017乌鲁木齐ICPC: K. Sum of the Line(容斥)
  7. pytorch 中 torch.optim.Adam 方法的使用和参数的解释
  8. [Python] np.nonzero(ndarray) 返回数组中不为0的元素的索引
  9. kong插件应用(熔断 限流,黑白名单,认证(basic,key,jwt,hmac,),授权,加密,zipkin链路跟踪,日志, prometheus可视化, 爬虫控制插件)
  10. EAST: An Efficient and Accurate Scene Text Detector