5.单行函数

function_name(column|expression,[arg1,arg2,…])

参数说明:function_name:函数名称

column:数据库列名

expression:字符串或计算表达式

arg1,arg2:在函数中使用参数

1)字符函数

接受字符输入并返回字符或数值

a)小写变大写UPPER()

如:SELECT UPPER('smith') FROM dual;

如用户查找时不会考虑姓名是大写还是小写,所以在查询语句中为了方便就可以使用upper函数:

SELECT* FROM emp WHERE ename = UPPER('Smith') ;

b)大写变小写LOWER()

如:SELECT LOWER ('HELLO WORLD') FROM dual;

c)首字母大写INITCAP()

如:SELECT INITCAP ('HELLO WORLD') FROM dual;

如将雇员表中的雇员姓名变为首字母大写:

SELECT INITCAP (ename) FROM emp;

d)字符串连接CONCAT()

但是此种方式不如||好用

如:SELECT CONCAT ('hello','world') FROM dual;

e)字符串截取SUBSTR()

f)字符串长度LENGTH()

g)字符串替换REPLACE()

如:SELECT SUBSTR('hello',1,3) 截取字符串,

LENGTH('hello') 字符串长度,

REPLACE('hello', 'l', 'x') 字符串替换

FROM dual;

截取点从0和1都是一样的

如已显示所有雇员的姓名及姓名的后三个字符(因为雇员姓名的字符喜欢长度不一样,只能求出整个的长度再减去2,进行截取):

SELECT ename, SUBSTR(ename,LENGTH(ename)-2) FROM emp;

SUBSTR可以倒着截取,只要输入的位置是负数就表示倒着进行

SELECT ename, SUBSTR(ename,-3,3) FROM emp;

2)数值函数

接受数值输入并返回数值

a)四舍五入ROUND()

如执行四舍五入操作:

如保留两位小数:

如保留整数位:

b)截断小数位TRUNC()

与ROUND()不同,在TRUNC()中不会保留任何的小数,而且也不会进位

如验证TRUNC函数:

通过该函数也可以指定小数点的保留位数:

也可以使用负数表示位数:

  1. 取余(取模)MOD()

3)日期函数

对日期型数据进行操作

日期±数字=日期

日期-日期=数字(天数)

如:显示10部门雇员进入公司的星期数

首先要知道前日期:

求出星期数:当前日期-雇用日期=天数 天数/7=星期数:

SELECT empno,ename,ROUND((SYSDATE-hiredate)/7) FROM emp;

a)MONTHS_BETWEEN()给定日期范围的月数

b)ADD_MONTHS()指定日期上加上指定约束,求出之后的日期

c)NEXT_DAY()下一个的指定日期

d)LAST_DAY ()求出给定日期的最后一天日期

4)转换函数

从一种数据类型转换为另一种数据类型

a)TO_CHAR():转换成字符串

拆分年月日:如要将雇用日期的年月日进行分开,就可以使用这个函数进行拆分。但是首先必须指定拆分的通配符:

SELECT empno,ename,

TO_CHAR(hiredate,'yyyy') year,

TO_CHAR(hiredate,'mm') months,

TO_CHAR(hiredate,'dd') day

FROM emp;

日期格式转换:

Oracle中默认的日期格式:19-4月 -87

中国的格式:1987-04-19

SELECT empno,ename,TO_CHAR(hiredate,'yyyy-mm-dd') FROM emp;

去掉前导0:如果是5月会用05表示,如果不希望出现的话,可以使用fm去掉

SELECT empno,ename,TO_CHAR(hiredate,'fmyyyy-mm-dd') FROM emp;

分割数字:在数字中加入一些符号以分割太长的数字,一般使用","

9:表示一位数字

SELECT empno,ename,TO_CHAR(sal,'99,999') FROM emp;

金额显示 方式

$:表示美元

L:Local的缩写,以本地的语言显示金额

SELECT empno,ename,TO_CHAR(sal,'$99,999') FROM emp;

SELECT empno,ename,TO_CHAR(sal,'L99,999') FROM emp;

b)TO_NUMBER():转换成数字

SELECT TO_NUMBER('123')+TO_NUMBER('123') FROM dual;

c)TO_DATE():转换成日期

SELECT TO_DATE('2009-02-16','yyyy-mm-dd') FROM dual;

5)通用函数

a)NVL函数

如计算年薪

SELECT empno,ename,(sal+comm)*12 FROM emp;

造成这样的结果是有些雇员的奖金是NULL,NULL计算之后还是NULL,此时就可以使用NVL函数,将一个指定的null值变成指定的内容

SELECT empno,ename,NVL(comm,0),(sal+NVL(comm,0))*12 income FROM emp;

b)DECODE函数

类似于IF…ELSE语句

DECODE(col/expression,search1,result1[,search2,result2,…][,default])

说明:col/expression:列名或者表达式

search1、search2…searchi:用于比较的条件

result1、result2…resulti:返回值

如果col/expression和searchi相比较,结果相同的话则返回resulti,如果没有与col/expression相匹配的结果,则返回默认值default

SELECT DECODE(1,1,'内容是1',2,'内容是2',3,'内容是3') FROM dual;

转载于:https://blog.51cto.com/858315/1124949

Oracle从零开始04——SQL语句03——单行函数相关推荐

  1. SQL语句之单行函数

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

  2. Oracle数据库中SQL语句用法(一)

    Copyright © 2019 @Linyer. All Rights Reserved 下接Oracle数据库中SQL语句用法(二)[点击以查看] 目录 第1章:编写基本的SQL SELECT语句 ...

  3. sql语句中的函数使用

    select *,sum(item_XXname) as itemSum from 表名. get(itemSum) 便可得到一系列的对应字段的和. 涉及到的其他的函数还有,摘自以下地址 http:/ ...

  4. Oracle]高效的SQL语句之分析函数

    [Oracle]高效的SQL语句之分析函数(一)--sum() 实际应用中我们可以通过sum()统计出组中的总计或者是累加值,具体示例如下: 1.创建演示表 create table emp as s ...

  5. 本地可以使用oracle吗,Oracle - PLS-00642:SQL语句中不允许使用本地集合类型

    我是ORACLE编程中的新手,我试图将表列值与传入的数组进行比较,并且我在此过程中遇到了相当令人沮丧的时间.Oracle - PLS-00642:SQL语句中不允许使用本地集合类型 这是来自包头的类型 ...

  6. Oracle查看注释SQL语句

    Oracle查看注释SQL语句 --查询表的列名和对应列名的注释 --查询表的字段类型及字段长度 --查询表名注释 --查询创建视图语句 --查询视图的列注释 --删除视图 --查看视图名注释 --修 ...

  7. oracle维护常用SQL语句(查看系统表和视图)

    转:http://www.360doc.com/content/11/1230/15/7489308_176090474.shtml oracle维护常用SQL语句(查看系统表和视图) 1.查看表空间 ...

  8. SQL语句--简单的函数书写举例(3)

    SQL语句–简单的函数书写举例(3) 在前两篇中,案例只涉及到简单的数值,这样的函数称为[标量函数] 这里的函数,可以简单的理解为它是一个可以进行计算的工具 标量函数:是简单的数值,eg:int.ch ...

  9. SQL语句--简单的函数书写举例(1)

    SQL语句–简单的函数书写举例(1) 在数据库下的[可编程性]–[函数]下可看到有4类函数,平时用的函数大部分为[系统函数]下的,当这些函数不能满足实际需求时,我们要自己创建函数. eg:计算 A+B ...

最新文章

  1. 实践指南 | 用PyTea检测 PyTorch 中的张量形状错误
  2. scrapy item引用时报错
  3. Petalinux 2018.2 for Xilinx
  4. QQ,MSN,SKYPE等在线状态代码
  5. 【Docker】Docker 启用 Kubernetes 报错 insecure-registries Must be host[ port] or CIDR
  6. Ubuntu报错:E: The repository http://ppa.launchpad.net/fcitx-team does not have a Release file.
  7. java代码发送邮箱_邮件发送 - java代码库 - 云代码
  8. 有关SQLite数据库的一些实证数据,有一定历史比较和参考意义
  9. [USACO10FEB]购买巧克力Chocolate Buying
  10. VS2005 SP1补丁下载与安装
  11. 敏捷教练 V 形六步法实战:从布朗运动到深度协作
  12. linux 多块网卡 bridge,理解linux虚拟网络设备bridge
  13. Java实现 LeetCode 492 构造矩形
  14. 什么是尾递归?javascript 尾递归优化
  15. Query Planning(查询方案)(搜索一)
  16. android 服务检测,Android检测某个服务是否还活着代码
  17. P7560-[JOISC 2021 Day1]フードコート【吉司机线段树】
  18. 南怀瑾老师:人最大的毛病就是不敢承认“心即是佛、心即是道
  19. 官宣 .NET 6 预览版 6
  20. 史上最大界面升级!微软 Windows 10 21H2!

热门文章

  1. jQuery图片轮播特效
  2. 简单实现一边固定,另一边自适用
  3. 余额宝 vs. P2P网贷,谁更有生命力?
  4. 重建输入表 - 脱壳篇04
  5. java webservice报文过长_工作1-5年的Java程序猿到底需要怎样的一个技术栈?
  6. createrepo命令安装_安装CDH6.3
  7. linux 自动安装 get,linux下自动获取并安装软件包 apt-get 的命令介绍
  8. server sql 判断是否是当天_判断sql server 是否在开启服务状态
  9. ios删除分割线_iOS应用开发中UITableView的分割线的一些设置技巧
  10. 第十一章 机器学习系统设计-机器学习老师板书-斯坦福吴恩达教授