单行函数:
操作数据对象
接受参数返回一个结果
只对一行进行变换
每行返回一个结果
可以转换数据类型
可以嵌套
参数可以是一列或一个值
- 大小写控制函数(lower、upper、initcap)
Select lower('huang')as小写,upper('HUANG')as 大写,Initcap('Huang')as 首字母大写 from dual;
- 字符控制函数(CONCAT、SUBSTR、LENGTH、INSTR、LPAD、RPAD、TRIM、REPLACE):
select concat('he','bi'),substr('hebi',1,3),
length('hebi'),instr('hebi','b'),
lpad('hebi',10,'*'),rpad('hebi',10,'*'),
trim('h'from 'hebi'),Replace('hebi','e','c') from dual;
- 数字函数(ROUND: 四舍五入,TRUNC: 截断,MOD: 求余)
Select round(88.888,2),trunc(88.888,1),
mod(1000,30)from dual;
- 日期函数(MONTHS_BETWEEN,ADD_MONTHS,NEXT_DAY,LAST_DAY)
select Months_between('12-9月-95','15-1月-94') 月数,Add_months('06-2月-94',4)日期,
round(Last_day('26-4月-19')) 本月最后一天,
Next_day('20-5月-98','星期一')星期几,
Trunc(sysdate,'Month')截断 from dual;
- 通用函数(NVL ,NVL2 ,NULLIF)
select last_name,salary,commission_pct 比例,last_name,email,nvl(commission_pct,0)as 系数,nvl2(commission_pct,'有值','空')as nv,
nullif (length(last_name),length(email)) nuif from employees
- 条件表达式(case when then)
select salary ,
case when salary <5000 then salary*0.2
when salary >5000 then salary*0.25
when salary >8000 then salary*0.3
when salary >10000 then salary*0.35
else salary end 系数 from employees
- 分组函数(AVG COUNT MAX MIN STDDEV SUM GORUP BY HAVING)
select distinct cno,avg(score),max(score),
min(score),sum(score),count(sno)
from sc group by cno having cno='c002';
- 日期的转换(to_date,to_char,TO_NUMBER)
select To_char(sysdate,'yyyy mm dd') as tchar,
to_date('26-3月-19','dd-mm"月"-yy') tdate,
To_number('¥88,888,88.00','L99,999,99.99') from dual;