【1.nvl/nvl2】
--select employee_id,last_name,salary*12*(1+nvl(commission_pct,0)) from employees
//如果commission_pct存在,则为其自身,否则赋值为0;
--select employee_id,last_name,commission_pct,nvl2(commission_pct,commission_pct+0.15,0.01) from employees
//如果commission_pct存在,则返回值为commission_pct+0.15,否则为0.01
【2. case…when…then…when…then…else…end】
select employee_id,last_name,department_id,
case department_id
when 10
then salary*1.1
when 20
then salary*1.2
else salary*1.3
end as "new_sal" //赋别名
from employees where department_id in (10,20,30)
【3.decode】
select employee_id,last_name,department_id,
decode(department_id,10,salary*1.1,20,salary*1.2,salary)
new_sal
from employees where department_id in(10,20,30)
//根据department_id进行判断,如果为10,则其salary*1.1;如果为20,则其salary*1.2;其他salary不变,并赋别名--new_sal
【4.to_char】
select to_char(sysdate,'yyyy"年"mm"月"dd"日" HH:mi:ss') from dual
select to_char(1234567.89,'999,999,999.99') from dual
【5.to_number】
select to_number('1,234,567.89','999,999,999.99')+100 from dual
//注意前后两个数的取值范围,后者一定要比前者大
【6.|| 拼接符】
select last_name || ' earns' ||to_char(salary,'$99999')||' monthlym,but wants to earn'||
to_char(3*salary,'$99999') "Dream Salary" from employees
//控制台将会输出一句话
【7.group by…having】
//按照部门ID进行分组,并添加过滤条件,且使用了子查询
select department_id,min(salary) from employees
group by department_id
having min(salary) >
(select min(salary) from employees where department_id ='50' )