--查询部门ID为2的部门员工全年收入(包括工资和奖金)
SELECT t.emp_name,
t.salary AS "工资",
t.bonus AS "奖金",
CASE WHEN t.bonus IS NULL THEN t.salary*12
ELSE t.salary*12 + t.bonus
END AS "全年收入"
FROM employee t WHERE t.dept_id=2;
select 字段1|| '-' || 字段2 AS '字段名' FROM 表名
Oracle wm_concat()函数 - 浅雨凉 - 博客园 (cnblogs.com)
oracle中使用wm_concat函数的方法及弊端(解决办法)_阿呆观月的博客-CSDN博客
decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)
解释:条件满足值1,则返回值1,满足值2,则返回值2,以此类推
decode(字段或字段的运算,值1,值2,值3)
解释:这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3
--Oracle
select t.id,
t.name,
t.age,
decode(t.sex, '1', '男生', '2', '女生', '其他') as sex
from STUDENT2 t
--MySql
select t.id,
t.name,
t.age,
if(t.sex ='1','男生',
if(t.sex='2','女生','其他')) as sex
from STUDENT2 t
--Oracle
select t.id,
t.name,
t.age,
decode(sign(t.age - 20),
1,
'20以上',
-1,
'20以下',
0,
'正好20',
'未知') as sex
from STUDENT2 t
--MySql
select t.id,
t.name,
t.age,
if(t.age-20>0,'20以上',(
if(t.age-20<0,'20以下',
if(t.age-20=0,'正好20','未知')))) as sex
from STUDENT2 t
--Oracle
select t.id,
decode(instr(t.name, '三'), 0, '姓名不含有三', '姓名含有三') as name,
t.age,
t.sex
from STUDENT2 t
--MySql
select t.id,
if(instr(t.name, '三')=0,'姓名不含有三', '姓名含有三') as name,
t.age,
t.sex
from STUDENT2 t
select name,
sal,
decode(sign(sal - 5000),
1,
'高薪',
0,
'高薪',
-1,
decode(sign(sal - 3000), 1, '中等', 0, '中等', -1, '低薪')) as salname
from person;
select t.id,
t.name,
t.age,
decode(t.sex,NULL,'暂无数据',t.sex) as sex
from STUDENT2 t

![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5wgX6KZG-1669089272073)(C:\Users\Ausware01\AppData\Roaming\Typora\typora-user-images\image-20221122113317783.png)]](https://1000bd.com/contentImg/2024/04/20/b8807159992db763.png)

