新网站2个月没有收录,重庆网站建站推广,同性男做性视频网站,企业做网站哪个最好#x1f388;写在前面 #x1f64b;♂️大家好呀#xff0c;我是超梦。大家可以叫我小梦~ 又到了练习SQL的时候啦#xff01;一起来学习吧#xff01; #x1f64b;♂️ 小伙伴们如果在学习过程中有不明白的地方#xff0c;欢迎评论区留言提问#xff0c;小梦定知无… 写在前面 ♂️大家好呀我是超梦。大家可以叫我小梦~ 又到了练习SQL的时候啦一起来学习吧 ♂️ 小伙伴们如果在学习过程中有不明白的地方欢迎评论区留言提问小梦定知无不言言无不尽。 目录
SQL题目概述
解题思路
方法实现
代码测试
知识点小结 SQL题目概述 LeetCode原题链接 Salary 表 -----------------------
| Column Name | Type |
-----------------------
| id | int |
| name | varchar |
| sex | ENUM |
| salary | int |
-----------------------id 是这个表的主键。
sex 这一列的值是 ENUM 类型只能从 (m, f) 中取。
本表包含公司雇员的信息。 题目 请你编写一个 SQL 查询来交换所有的 f 和 m 即将所有 f 变为 m 反之亦然仅使用 单个 update 语句 且不产生中间临时表。 注意你必须仅使用一条 update 语句且 不能 使用 select 语句。 查询结果如下例所示。 示例 1: 输入
Salary 表
-----------------------
| id | name | sex | salary |
-----------------------
| 1 | A | m | 2500 |
| 2 | B | f | 1500 |
| 3 | C | m | 5500 |
| 4 | D | f | 500 |
-----------------------
输出
-----------------------
| id | name | sex | salary |
-----------------------
| 1 | A | f | 2500 |
| 2 | B | m | 1500 |
| 3 | C | f | 5500 |
| 4 | D | m | 500 |
-----------------------
解释
(1, A) 和 (3, C) 从 m 变为 f 。
(2, B) 和 (4, D) 从 f 变为 m 。 解题思路 题目中仅使用 单个 update 语句 且不产生中间临时表。看似不可能写出来其实思路很简单。 如果 sex m 那么就把sex设置为 f 否则将sex设置为 m 。 我们可以通过case...when 流程控制语句实现或者使用if()函数来是现实sex的性别对换。 这样小梦这里就有两种解题思路如果小伙伴们还有其他解题思路欢迎评论区留言交流~ 方法实现
方法一
update salary set sex case sex when m then f else m end;
方法二
update salary set sex if(sex m, f, m); 代码测试 方法一 执行代码开始测试 与测试结果一致测试成功 方法二 执行代码开始测试 与测试结果一致测试成功 知识点小结 case when 简单函数枚举这个字段所有可能的值CASE [col_name] WHEN [value1] THEN [result1]…ELSE [default] END 搜索函数搜索函数可以写判断并且搜索函数只会返回第一个符合条件的值其他case被忽略CASE WHEN [expr] THEN [result1]…ELSE [default] ENDif函数 IF函数根据条件的结果为true或false返回第一个值或第二个值。 IF(condition, value_if_true, value_if_false)