题目链接:https://leetcode-cn.com/problems/swap-salary/

题目

给定一个 salary 表,如下所示,有 m = 男性f = 女性 的值。交换所有的 fm 值(例如,将所有 f 值更改为 m,反之亦然)。要求只使用一个更新(Update)语句,并且没有中间的临时表。

注意,您必只能写一个 Update 语句,请不要编写任何 Select 语句。

例如:

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

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/swap-salary

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解答

虽然不知道为什么这么写。。但自己写的。。居然通过了。。

---- MySQL ----
# Write your MySQL query statement below
update salary set sex =
case when sex = 'm' then 'f'
when sex = 'f' then 'm' end ---- 119ms

Oracle提交也可以通过,不过执行很慢,1151ms。

看到一个神操作,通过ascii码转换,再通过char转换为字符串,666!

---- MySQL ----
update salary set sex =
char(ascii('f') + ascii('m') - ascii(sex)); ---- 118ms

还有通过异或运算得到结果的。

---- MySQL ----
update salary set sex =
char(ascii(sex)^ascii('f')^ascii('m')); ---- 120ms

异或运算:当2个相同的值进行异或运算,结果为0。

使用MySQLif函数,if(sex = 'm', 'f', 'm')也可以。

---- MySQL ----
update salary set sex =
if(sex = 'm', 'f', 'm');

使用oracledecode函数。

---- oracle ----
update salary set sex =
decode(sex, 'm', 'f', 'f', 'm');

思考

使用updatecase...when...进行动态将值设置成列。

通过ascii码转换,再通过char转换为字符串。

使用异或运算进行解答。

使用常规的ifdecode进行解答。

LeetCode:627.交换工资的更多相关文章

  1. SQL语句中IF的简单使用 - 关联leetcode 627.交换工资

    MySQL的IF既可以作为表达式用,也可在存储过程中作为流程控制语句使用,如下是做为表达式使用: IF表达式 IF(expr1,expr2,expr3) 如果 expr1 是TRUE (expr1 & ...

  2. [LeetCode] 627.交换性别

    给定一个 salary 表,如下所示,有 m = 男性 和 f = 女性 的值.交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然). 要求只使用一个更新(Update)语句,并且没 ...

  3. case when then的用法-leetcode交换工资

    case具有两种格式:简单case函数和case搜索函数. --简单case函数 case sex when ' then '男' when ' then '女’ else '其他' end --ca ...

  4. LeetCode 627. Swap Salary (交换工资)

    题目标签: 题目给了我们一个 工资表格,让我们把 男女性别对换. 这里可以利用IF, IF(condition, value_if_true, value_if_false). Java Soluti ...

  5. LeetCode刷题(数据库)---- 交换工资

    题:给定一个工资表,如下所示,m=男性 和 f=女性 .交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然).要求使用一个更新查询,并且没有中间临时表. 例如: | id | nam ...

  6. “全排列”问题系列(一)[LeetCode] - 用交换元素法生成全排列及其应用,例题: Permutations I 和 II, N-Queens I 和 II,数独问题

    转:http://www.cnblogs.com/felixfang/p/3705754.html 一.开篇 Permutation,排列问题.这篇博文以几道LeetCode的题目和引用剑指offer ...

  7. [SQL]LeetCode627. 交换工资 | Swap Salary

    SQL架构 create table ), sex ), salary int) Truncate table salary insert into salary (id, name, sex, sa ...

  8. leetcode 184 部门工资最高的员工

    题目描述:Employee 表包含所有员工信息,每个员工有其对应的 Id, salary 和 department Id. Department 表包含公司所有部门的信息. 编写一个 SQL 查询,找 ...

  9. leetcode 627. Swap Salary 数据库带判断的更新操作

    https://leetcode.com/problems/swap-salary/description/ 用  set keyWord = Case depentedWord when haha ...

随机推荐

  1. java 测试框架

    项目开发过程中使用的单元测试框架有Junit.TestNG以及Mockito,Junit和TestNG使用的比较多,Mockito最近才开始使用. TestNG与JUnit的相同点 1. 使用anno ...

  2. linux 中gcc的·安装、编译过程

    一.安装gcc编译器 通过命令gcc -v查看当前的GCC版本 [root@localhost /]# gcc -v Reading specs from /usr/i386-glibc-2.1-li ...

  3. 分颜色通道SR的相关论文

    1.SRCNN-译文.doc https://max.book118.com/html/2017/0628/118607667.shtm 见SRCNN翻译:彩色通道的实验 - wangxujin666 ...

  4. 数据分析 - Excel 配色, 绘图, 技巧

    美学 配色 画图本身是美学的展示, 出色的配色是必须的 虽然本身美学并不是数据分析的必要, 但是也不能太low 如果做的太丑展示也是很尴尬 配色网站 点击这里 配置 现版本的 excel 中已存在较为 ...

  5. vue+七牛云 截图工具

    1.安装:npm install vue-cropper 2.引入:import VueCropper from 'vue-cropper' Vue.use(VueCropper) <templ ...

  6. mysql物理备份innobackupex

    一.全量备份 1.安装xtrabackup # wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.4/b ...

  7. groupby+agg

    一.在处理pandas表格数据时,有时会遇到这样的问题:按照某一列聚合后,判断另一列是否出现唯一值,比如安泰杯--跨境电商比赛中,某个商人的ID如果出现在两个国家(xx和yy),则要剔除这样的数据,这 ...

  8. laravel 自带消息notification通知

    原文地址:https://blog.csdn.net/zhangxh1013/article/details/53130490

  9. 性能优化-屏幕常亮与CPU唤醒

    Android在不使用的时候,屏幕在一段时间以后会变暗,再过一段时间就会熄屏,此时CPU就会休眠,那么在这个时候,Timer.Handler.Thread.Service等都会暂停,有时候我们需要屏幕 ...

  10. Nginx 开启支持谷歌Brotli压缩算法

    参考链接:https://cloud.tencent.com/developer/article/1501009