​LeetCode刷题实战627:变更性别

程序IT圈

共 779字,需浏览 2分钟

 ·

2022-06-09 01:03

算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !

今天和大家聊的问题叫做 变更性别,我们先来看题面:
https://leetcode.cn/problems/swap-salary/

请你编写一个 SQL 查询来交换所有的 'f' 和 'm' (即,将所有 'f' 变为 'm' ,反之亦然),仅使用 单个 update 语句 ,且不产生中间临时表。

注意,你必须仅使用一条 update 语句,且 不能 使用 select 语句。

查询结果如下例所示。

示例

解题
这题有4种解法,都分享给大家看看

解法1

UPDATE salary
SET
sex = CASE sex
WHEN 'm' THEN 'f'
ELSE 'm'
END;

解法2

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

解法3

update salary
set sex = replace("fm", sex, "")

解法4

update salary set sex = char(ASCII(sex) ^ ASCII('m') ^ ASCII('f') ) ;

上期推文:
LeetCode1-620题汇总,希望对你有点帮助!
LeetCode刷题实战621:任务调度器
LeetCode刷题实战622:设计循环队列
LeetCode刷题实战623:在二叉树中增加一行
LeetCode刷题实战624:数组列表中的最大距离
LeetCode刷题实战625:最小因式分解
LeetCode刷题实战626:换座位

浏览 16
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报