目录
字符串函数
函数 | 作用 |
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 经理