前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >脚撕LeetCode(627sql)Easy

脚撕LeetCode(627sql)Easy

作者头像
JathonKatu
发布2022-01-18 08:15:38
1300
发布2022-01-18 08:15:38
举报
文章被收录于专栏:JathonKatu

题目地址:https://leetcode-cn.com/problems/swap-salary/

给定一个salary表,如下所示,有 m = 男性 和 f = 女性 的值。交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然)。 要求只使用一个更新(Update)语句,并且没有中间的临时表。 注意,您必只能写一个 Update 语句,请不要编写任何 Select 语句。 例如:

代码语言:javascript
复制
| id | name | sex | salary | 
|----|------|-----|--------|
| 1  | A    | m   | 2500   | 
| 2  | B    | f   | 1500   |
| 3  | C    | m   | 5500   |
| 4  | D    | f   | 500    | 

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

运行你所编写的更新语句之后,将会得到以下表:

代码语言:javascript
复制
| id | name | sex | salary | 
|----|------|-----|--------| 
| 1  | A    | f   | 2500   | 
| 2  | B    | m   | 1500   |
| 3  | C    | f   | 5500   | 
| 4  | D    | m   | 500    |

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

代码语言:javascript
复制
update salary set sex = if(sex = 'f','m','f')
update salary set sex = case when sex = 'f' then 'm' else 'f'end
update salary set sex = char(ascii('m') + ascii('f') - ascii(sex));

    //f:70,0b 0100 0110
    //m:77,0b 0100 1101
    //
    //后四位异或得到 0b 1011,再用结果异或就还原了
update salary set sex = char(ascii(sex)^0xb)

这是一道sql题,前两个方法是可以很容易想到的。但是后面两个需要对char和ascii这两个比较少见的函数有一定的理解

然后,最后一个题的一个知识点,两个数的抑或与其中任何一个数抑或都能得到另一个数,这个比较浅显易懂的知识点可能比较容易遗忘。

为什么sql题也要做,因为之前面试的时候确确实实考过sql题。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JathonKatu 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档