Función de juicio de Oracle

CASO CUANDO 

gramática:

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

-- Juzgue el campo DEPTNO de EMP y muestre el nombre del departamento correspondiente

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     

-- Utilice declaraciones SQL para hacer estadísticas en diferentes condiciones 
-- La proporción de personas en cada departamento con un salario superior a 1500 como proporción del número total de personas en el departamento
-- Paso 1: Número de personas en el departamento
- - Paso 2: Número de personas con salario superior a 1.500 
-- - Más de 1.500 personas/número de personas en todo el departamento

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
--En la actualización de datos, realizar bifurcación condicional
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;

Supongo que te gusta

Origin blog.csdn.net/weixin_57024726/article/details/133256197
Recomendado
Clasificación