大小写转换函数
LOWER、UPPER 和INITCAP 是三个大小写转换函数。
• LOWER:将大小写混合或大写的字符串转换为小写
• UPPER:将大小写混合或小写的字符串转换为大写
• INITCAP:将每个单词的首字母转换为大写,其余字母保留为小写
以下函数用于转换字符串的大小写:
SELECT UPPER(BH) FROM [fixf_zk(fentan)].[dbo].[FIXF_Svr_PJ]
SELECT lower(BH) FROM [fixf_zk(fentan)].[dbo].[FIXF_Svr_PJ]
select initcap(tzdlxqc) from fixf_svr_tzdsy;
字符处理函数
CONCAT、SUBSTR、LENGTH、INSTR、LPAD、RPAD 和TRIM 是本课中要介绍的字符
处理函数。
• CONCAT:将值联接在一起(CONCAT 函数中只能使用两个参数)
• SUBSTR:提取确定长度的字符串
• LENGTH:以数字值的形式显示字符串的长度
• INSTR:查找指定字符串的数字位置
• LPAD:返回一个表达式,左边使用一个字符表达式填充到n 个字符的长度
• RPAD:返回一个表达式,右边使用一个字符表达式填充到n 个字符的长度
• TRIM:截去字符串首字符或尾字符(或者两者都截去)(如果trim_character
或trim_source 是一个字符文字,则必须将其放在单引号内)
select CONCAT(tzdbm,tzdlx) from fixf_svr_tzdsy;
select substr(tzdbm,1,5) from fixf_svr_tzdsy;
select length(tzdbm) from fixf_svr_tzdsy;
select instr(tzdbm,6) from fixf_svr_tzdsy;
select lpad(tzdbm,20,'*') from fixf_svr_tzdsy;
select rpad(tzdbm,20,'*') from fixf_svr_tzdsy;
select replace('JACK and JUE','J','BL') from dual;
select TRIM('151704' from tzdbm) from fixf_svr_tzdsy;select trim(leading 'H' from 'HelloWorldH') from dual;前面截取select trim(trailing 'H' from 'HelloWorldH') from dual;后面截取
数字函数
• ROUND:将值舍入到指定的小数位
• TRUNC:将值截断到指定的小数位
• MOD:返回除法运算的余数
select round(ye,1) from fixf_svr_xzh;
select trunc(ye,1) from fixf_svr_xzh;
select mod(ye,500) from fixf_svr_xzh;select mod(7,2) from dual;--经常用于奇偶判断
日期有关的运算


select months_between(sysdate,khrq) from fixf_svr_xzh;
select add_months(sysdate,2) from dual;
select next_day(to_date('2019-10-22','yyyy-mm-dd'),7) from dual;注意周日到周六为1-7表示
select last_day(to_date('2019-10-22','yyyy-mm-dd')) from dual;
转换函数



select to_char(hire_date,'yyyy-mm') from employees;select to_char(salary,'$99,999.00') from employees;
常规函数




select commission_pct,nvl(commission_pct,0) from employees;select commission_pct,nvl2(commission_pct,'SAL+COM','SAL') from employees;

select nullif(10,20) from dual;

SELECT commission_pct,manager_id,coalesce(to_char(commission_pct),to_char(manager_id),'no commission and no manager')FROM employees;
条件表达式

SELECT last_name,job_id,salary,CASE job_idWHEN 'IT_PROG' THEN1.10 * salaryWHEN 'ST_CLERK' THEN1.15 * salaryWHEN 'SA_REP' THEN1.20 * salaryELSEsalaryEND "revised_salary"FROM employees;

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_salaryFROM employees;

