大小写转换函数

LOWER、UPPER 和INITCAP 是三个大小写转换函数。
• LOWER:将大小写混合或大写的字符串转换为小写
• UPPER:将大小写混合或小写的字符串转换为大写
• INITCAP:将每个单词的首字母转换为大写,其余字母保留为小写
以下函数用于转换字符串的大小写:

  1. SELECT UPPER(BH) FROM [fixf_zk(fentan)].[dbo].[FIXF_Svr_PJ]
  1. SELECT lower(BH) FROM [fixf_zk(fentan)].[dbo].[FIXF_Svr_PJ]
  1. 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 是一个字符文字,则必须将其放在单引号内)
image.png

  1. select CONCAT(tzdbm,tzdlx) from fixf_svr_tzdsy;
  1. select substr(tzdbm,1,5) from fixf_svr_tzdsy;
  1. select length(tzdbm) from fixf_svr_tzdsy;
  1. select instr(tzdbm,6) from fixf_svr_tzdsy;
  1. select lpad(tzdbm,20,'*') from fixf_svr_tzdsy;
  1. select rpad(tzdbm,20,'*') from fixf_svr_tzdsy;
  1. select replace('JACK and JUE','J','BL') from dual;
  1. select TRIM('151704' from tzdbm) from fixf_svr_tzdsy;
  2. select trim(leading 'H' from 'HelloWorldH') from dual;前面截取
  3. select trim(trailing 'H' from 'HelloWorldH') from dual;后面截取

数字函数

• ROUND:将值舍入到指定的小数位
• TRUNC:将值截断到指定的小数位
• MOD:返回除法运算的余数

  1. select round(ye,1) from fixf_svr_xzh;
  1. select trunc(ye,1) from fixf_svr_xzh;
  1. select mod(ye,500) from fixf_svr_xzh;
  2. select mod(7,2) from dual;--经常用于奇偶判断

日期有关的运算

image.png
image.png

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

image.png
image.png

转换函数

image.pngimage.png
image.png

  1. select to_char(hire_date,'yyyy-mm') from employees;
  2. select to_char(salary,'$99,999.00') from employees;

常规函数

image.pngimage.png
image.png
image.png

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

image.png

  1. select nullif(10,20) from dual;

image.png

  1. SELECT commission_pct,
  2. manager_id,
  3. coalesce(to_char(commission_pct)
  4. ,to_char(manager_id)
  5. ,'no commission and no manager')
  6. FROM employees;

条件表达式

image.png

  1. SELECT last_name,
  2. job_id,
  3. salary,
  4. CASE job_id
  5. WHEN 'IT_PROG' THEN
  6. 1.10 * salary
  7. WHEN 'ST_CLERK' THEN
  8. 1.15 * salary
  9. WHEN 'SA_REP' THEN
  10. 1.20 * salary
  11. ELSE
  12. salary
  13. END "revised_salary"
  14. FROM employees;

image.png

  1. SELECT last_name,
  2. job_id,
  3. salary,
  4. decode(job_id
  5. ,'IT_PROG'
  6. ,1.10 * salary
  7. ,'ST_CLERK'
  8. ,1.15 * salary
  9. ,'SA_REP'
  10. ,1.20 * salary
  11. ,salary) revised_salary
  12. FROM employees;