Oracle-函数

本文详细介绍了SQL中常用的函数及操作,包括NULL值处理函数nvl/nvl2、case when语句、decode函数、字符串格式化函数to_char、数字转换函数to_number、字符串连接操作||以及分组查询与过滤条件的使用。通过具体示例展示了如何运用这些功能来处理数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【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' )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流烟默

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值