LeetCode(SQL):1873. 计算特殊奖金
https://leetcode.cn/study-plan/sql/
https://leetcode.cn/problems/calculate-special-bonus/
提交代码
# Write your MySQL query statement below
SELECT employee_id,
(case
when employee_id %2!=0 && name NOT LIKE 'M%'
then salary
ELSE salary=0
END) bonus
from employees
执行结果
执行结果:
通过
显示详情
添加备注
执行用时:
593 ms
, 在所有 MySQL 提交中击败了
60.01%
的用户
内存消耗:
0 B
, 在所有 MySQL 提交中击败了
100.00%
的用户
通过测试用例:
22 / 22
完整代码
sql创建
/*
Navicat MySQL Data Transfer
Source Server : local
Source Server Version : 50519
Source Host : localhost:3306
Source Database : db_learn
Target Server Type : MYSQL
Target Server Version : 50519
File Encoding : 65001
Date: 2022-05-13 15:26:46
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `employees_1873`
-- ----------------------------
DROP TABLE IF EXISTS `employees_1873`;
CREATE TABLE `employees_1873` (
`employee_id` int(11) NOT NULL DEFAULT '0',
`name` varchar(255) DEFAULT NULL,
`salary` int(11) DEFAULT NULL,
PRIMARY KEY (`employee_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of employees_1873
-- ----------------------------
INSERT INTO `employees_1873` VALUES ('2', 'Meir', '3000');
INSERT INTO `employees_1873` VALUES ('3', 'Michael', '3800');
INSERT INTO `employees_1873` VALUES ('7', 'Addilyn', '7400');
INSERT INTO `employees_1873` VALUES ('8', 'Juan', '6100');
INSERT INTO `employees_1873` VALUES ('9', 'Kannon', '7700');
查询
SELECT employee_id,
(case
when employee_id %2!=0 && name NOT LIKE 'M%'
then salary
ELSE salary=0
END) bonus
from employees_1873
收获
查询时的case应如下,不能忘记END。
select name, (CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN conditionN THEN resultN
ELSE result
END) as xx4
from table
condition中的取余可以用%,也可以用MOD()。且可以用&&,也可以用and。
as可省略。
浙公网安备 33010602011771号