オラクル判定機能

場合 

文法:

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 文を使用してさまざまな条件で統計を作成 
-- 各部門の給与が 1,500 を超える人の部門内の総人数に占める割合
-- ステップ 1: 部門の人数
-- - ステップ 2: 給与が 1,500 人を超える人数 
-- - 部門全体の人数あたり 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;

おすすめ

転載: blog.csdn.net/weixin_57024726/article/details/133256197