单行函数:字符类型,数值 类型,日期时间类型,数值转换类型和其它类型
1、字符串函数:
- SELECT employee_id, last_name, department_id FROM employees WHERE LOWER(last_name)='higgins';
说明:
如果不加这个函数,由于人名中可能含有字母的大小写,而不能得到正确的数据
2、数值型函数
- SELECT ROUND(45.926, 2), TRUNC(45.926, 2), MOD(1600, 300) FROM DUAL;
说明:
该语句运行的结果分别是
45.93, 45.92, 100
3、时间型函数
- SELECT MONTHS_BETWEEN(to_date('16-06-05', 'yy-mm-dd'), to_date('15-06-04', 'yy-mm-dd')), ADD_MONTHS(sysdate, 6), LAST_DAY(to_date('16-06-05', 'yy-mm-dd')), ROUND(SYSDATE, 'MONTH'), ROUND(SYSDATE, 'YEAR'), TRUNC(SYSDATE, 'MONTH'), TRUNC(SYSDATE, 'YEAR') FROM dual;
4、时间的加减:
- SELECT sysdate+1, sysdate-1, to_date('20040506','yyyymmdd')-sysdate, to_char(sysdate+1/24, 'yyyy/mm/dd hh24:mi:ss') FROM dual;
说明:
这个例子进行了时间的加减运算。需要注意的是,如果是加数字的话,其所加的单位是
天。小时可以用
sysdate+1/24
表示,同理可以对秒进行操作
5、转换函数
- SELECT TO_CHAR(sysdate,'yyyymmddhh24miss'), TO_CHAR(1234,'999999'), TO_CHAR(1234,'0999999'), TO_CHAR(1234,'$999999'), to_number('03'), TO_CHAR(1234,'999999.99'), TO_CHAR(1234,'999,999'), TO_DATE('2004-04-04 23:00:02','yyyy-mm-dd hh24:mi:ss') FROM dual;
6、函数
NVL
的用法:
- SELECT last_name, salary, NVL(commission_pct,0), (salary*12) + (salary*12*NVL(commission_pct,0)) AN_SAL FROM employees;
说明:
如果佣金为空值,则用
0
代替。
7、函数
DECODE
的用法:
- 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;
说明:含义为
if job_id=’IT_PROT’ then salary = 1.1*salary
else if job_id=’ST_CLERK’then salary = 1.15*salary
else if job_id=’SA_REP’then salary = 1.20*salary
els salary
8、单行函数进行任意层数的嵌套:
- SELECT last_name, nvl(to_char(manager_id), 'No manager') FROM employees;
9、两个字符串的合并:
- SELECT last_name||'’s phone number is: '||phone_number FROM employees WHERE job_id='IT_PROG';
说明:
可以使用
||
将两个字符类型的数据连接起来,等同于函数
CONCAT.