开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 21 天,点击查看活动详情
难度评分
难度评分:⭐
题目
题目详情请点击下述链接,这里就不做介绍。
Create Table
创建名为products
的MySQL数据库表:
该表包含三个列:
employee_id
:一个整数类型,表示雇员的id。这个字段是主键,意味着每个雇员都有一个唯一的ID。name
:一个字符串类型,表示雇员的名字。这个字段可以为空。salary
:一个整数类型,表示雇员的薪水。这个字段可以为空。
该表使用InnoDB
引擎,字符集为utf8
,字符编码为utf8_general_ci
,存储引擎行格式是Dynamic
。
DROP TABLE IF EXISTS `Employees`;
CREATE TABLE `Employees` (
`employee_id` int(10) NOT NULL,
`name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`salary` int(10) NULL DEFAULT NULL,
PRIMARY KEY (`employee_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
Insert
插入内容不作额外解释,内容均来自于题目示例的情况。
INSERT INTO `Employees`(`employee_id`, `name`,`salary`) VALUES
(2, 'Meir',3000),(3,'Michael',3800),(7,'Addilyn',7400),(8,'Juan',6100),(9,'Kannon',7700);
SQL
SQL查询语句,用于从一个名为employees
的表中检索数据,并根据条件计算出用户的奖金值。
主要是涉及到IF(condition, value_if_true, value_if_false)
,符合该题根据某条件返回何值,在SQL中经常使用。最后涉及ORDER BY
语句,这部分查询语句按employee_id
升序对结果进行排序。
SELECT employee_id , IF(MOD(employee_id,2) !=0 AND LEFT(name,1)!='M',salary,0) AS bonus FROM employees ORDER BY employee_id;
备注
这题主要使用IF
函数为每个员工计算bonus
值。
IF
函数需要三个参数:
- 要评估的条件
- 如果条件为真要返回的值
- 如果条件为假要返回的值。
在这种情况下,如果employee_id
是奇数且name
的第一个字母不是"M"则:bonus
值为salary
,否则为0。
注意
IF函数可以用于查询中作为列输出,它的作用是根据给定的条件来返回不同的值。