Oracle判断函数-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
CASE WHEN 

语法

CASE WHEN 条件1 THEN 返回值1
     WHEN 条件2 THEN 返回值2
     ELSE 默认值
     END

-- 对 EMP 的 DEPTNO 字段进行判断,显示出对应的部门名称

SELECT 
E.*,
CASE WHEN E.DEPTNO=10 THEN 'ACCOUNTING'
     WHEN E.DEPTNO=20 THEN 'RESEARCH'
     WHEN E.DEPTNO=30 THEN 'SALES'
     ELSE 'OPERATIONS' 
     END AS 部门名称
FROM EMP E     

-- 使用 SQL语句进行不同条件的统计 
-- 每个部门中工资高于 1500 的人,占整个部门的人数比例
-- 第一步: 部门的人数
-- 第二步: 高于1500 的人数 
-- 高于 1500人数 /整个部门的人数

SELECT 
E.DEPTNO,
COUNT(*) 部门人数,
SUM(CASE WHEN E.SAL >1500 THEN 1 ELSE 0 END ) AS 高于1500的人数,
ROUND( SUM(CASE WHEN E.SAL >1500 THEN 1 ELSE 0 END ) / COUNT(*) ,3) * 100 || '%' 部门人数占比
FROM EMP E
GROUP BY E.DEPTNO
--在数据更新里,进行条件分支
CREATE TABLE SALS
(NAME VARCHAR2(10),
SAL NUMBER
);

insert into SALS VALUES('张三',30000);
insert into SALS VALUES('李四',27000);
insert into SALS VALUES('王五',22000);
insert into SALS VALUES('赵六',29000);

-- 对工资 3w包括3w的降薪 10% 对当前 2.5W~3W的员工,加薪20%
UPDATE SALS 
SET SAL = CASE WHEN 
SAL >= 30000 THEN SAL*0.9
WHEN SAL >= 25000 AND SAL < 30000 THEN SAL *1.2
ELSE SAL END;

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: oracle