-- 轉換函數
-- to_number(數值類型的字符):將字符裝換爲數值
-- to_char(數值或者日期):將數值或者日期轉換爲字符
-- to_date(日期格式的字符):將字符轉換爲日期
-------------------------------------
-- 字符轉換爲數字char--->number
select to_number('123') +2 from dual
-- 數字轉換字符number---->char
--指定顯示格式:
--9表示佔位,列如999,999,999會將數字按照三個一組使用逗號隔開
--L表示人民幣符號,$表示美圓符號
--0能夠進行佔位分組,可是若是真實數據位數不足,會使用0進行補位
select to_char(123456,'$999,999,999') from dual
select to_char(123456,'L999,999,999') from dual
select to_char(12345678,'000,000,000,000.000') from dual
--查詢工資大於2000的員工信息
--數值和字符之間的轉換能夠隱式轉換,to_number能夠省略不寫。
select * from emp where sal>'2000';
select * form emp where sal>to_number('2000');
------------------------------------------------------
-- 字符轉換爲日期 char--->date
--使用to_date('要轉換的字符',日期格式)函數將字符轉換爲日期
-- 注意一:字符必須符合日期格式
-- 注意二:oracle默認的轉換格式爲日月年,例如'01-1月-2018' oracle認爲是一個日期
-- 常見日期格式:
-- yyyy-mm-dd
-- yyyy/mm/dd
--查詢員工入職日期在82年後的信息
select * from emp where hiredate >to_date('1982-01-01','yyyy-mm-dd');
select * from emp where hiredate >to_date('1982/01/01','yyyy/mm/dd');
-- 日期轉換爲字符 date ---> char
-- 使用to_char('要轉換的日期')
select to_char(hiredate) from emp -- 使用默認格式將日期轉換爲字符
select to_char(hiredate,'yyyy-mm-dd') from emp
select to_char(hiredate,'yyyy/mm/dd') from emp
select to_char(hiredate,'yyyy"年"mm"月"dd"日"') from emp
------------------------------------------------
-- 其餘函數
--nvl():nvl(字段名,新的值)
-- 若是字段爲null,則返回新的值,不爲null 則返回該字段的值
--nvl2():nvl2(字段名,處理1,處理2)
-- 若是字段值不爲null,則執行處理一,爲null,則執行處理二
--decode():decode(字段名,值1,處理1,值2,處理2,值3,處理3...,公共處理)
--查詢員工的工資信息
select ename,job,sal from emp
--查詢員工的薪水信息
select ename,job,sal+nvl(comm,0),sal+comm,sal from emp
select ename,job,nvl2(comm,sal+comm,sal),sal from emp
--顯示員工的職稱
select ename,job,decode(job,'MANAGER','經理','PRESIDENT','董事長','SALESMAN','銷售','普通員工') from emporacle