Oracle数据库——单行函数

目录

字符串函数

数值函数

日期函数

ADD_MONTHS()

 MONTHS_BETWEEN()

LAST_DATE()

NEXT_DAY()

转换函数

通用函数

NVL()

DECODE()


字符串函数
 

函数 作用
LOWER(列|字符串) 全部为大写
UPPER(列|字符串) 全部为小写
INITCAP(列|字符串) 首字母为大写
LENGTH(列|字符串) 取得字符串长度
SUBSTR(开始索引,[长度]) 进行字符串的截取,若未设置长度,则截取到结尾
REPLACE(列|字符串,旧内容,新内容) 字符串的数据以新数据替换旧数据

信息的输入 

先进行大小写转化,&是转义

SELECT * FROM emp WHERE ename=UPPER('&inputname');
输入 inputname 的值:

 LENGTH(列|字符串)

 select * from emp where length(ename)=5;

SUBSTR(开始索引,[长度])

开始索引为1

select substr(ename,1,3) from emp;

数值函数

函数 作用
ROUND(l列,数字[,小数位]) 实现四舍五入,设置保留小数位
TRUNC(l列,数字[,小数位]) 实现数据截取,即不进位
MOD(l列,数字[,小数位]) 求模(计算余数)

小数位可为负

SELECT ROUND(234.9879,3) FROM dual;

ROUND(234.9879,3)
-----------------
          234.988

日期函数

函数 作用
ADD_MONTHS(列|日期,月数) 在指定日期增加月数
MONTHS_BETWEEN(列|日期,列|日期) 返回两个日期之间的月数
LAST_DATE(列|日期) 返回本月最后一天
NEXT_DAY(列,日期,星期X) 返回下一个对应的一周时间数对应的日期

SYSDATE

SYSTIMESTAMP

select sysdate from dual;

SYSDATE
--------------
22-9月 -18

select systimestamp from dual;

SYSTIMESTAMP
---------------------------------------------------------------------------
22-9月 -18 11.50.37.553000 下午 +08:00

ADD_MONTHS()

SELECT ADD_MONTHS(SYSDATE,4) FROM dual;

ADD_MONTHS(SYS
--------------
23-1月 -19

 MONTHS_BETWEEN()

SELECT MONTHS_BETWEEN(SYSDATE,hiredate) from emp;

MONTHS_BETWEEN(SYSDATE,HIREDATE)
--------------------------------
                      453.193751
                      451.096977

LAST_DATE()

SELECT LAST_DAY(SYSDATE) FROM dual;

LAST_DAY(SYSDA
--------------
30-9月 -18

NEXT_DAY()

select NEXT_DAY(SYSDATE,'星期二') from emp;

转换函数

函数 作用
TO_CHAR(列 | 日期 | 数字,转换格式) 将日期,数字转换为制定结构的字符串
TO_DATE(列 | 字符串,转换格式) 将字符串按指定格式,转换为日期形式
TO_NUMBER(列 | 字符串) 将字符串转换为数字

转换格式:

  • 日期:年(yyyy),月(mm),日(dd);
  • 时间:时(hh,hh24),分(mi),秒(ss);
  • 数字:任意数字(9),本地货币符号(L)。

通用函数

函数 作用
NVL(列 | NULL,默认值) 若传入内容为空,则用默认数值处理;若传入不为空,则用原始数值处理。
DECODE(列 | 字符串 | 数值,比较内容1,显示内容1,比较内容2,显示内容2...[,默认显示内容]) 设置的内容会与每一个比较内容进行比较,若内容相同,则会使用显示内容进行输出,都不相同,则使用最后的默认信息输出。

NVL()

在实际工作中,因无法对包含NULL空值的算式进行计算,故要将空值转化为默认值

select (sal+NVL(comm,0))*12 income from emp;

DECODE()

SELECT job,DECODE(job,'CLERK','办事员','SALESMAN','销售','MANAGER','经理','=====') FROM emp;

JOB                DECODE(JOB,'CLERK'
------------------ ------------------
CLERK              办事员
SALESMAN           销售
SALESMAN           销售
MANAGER            经理

猜你喜欢

转载自blog.csdn.net/qq_36230524/article/details/82817986