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可省略。

posted @ 2022-05-13 15:26  孤舟浮岸  阅读(96)  评论(0)    收藏  举报