前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL练习五:变更性别

MySQL练习五:变更性别

原创
作者头像
Mandy的名字被占用了
修改2021-09-26 09:23:59
1.2K0
修改2021-09-26 09:23:59
举报

题目表述

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

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

例如:

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

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

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

解题思路

此题是一个考察 sql 语句的试题,特别需要注意的是题目要求,不能是用 select、临时表、多条 sql 语句等情况。这就考察对 sql 语句的灵活运用。

解题答案

1.解题方式一:使用 case when 语法

代码语言:txt
复制
// case when 语法
update tableName set colnum = caseVal 
WHEN  情况一  THEN 返回值一 
WHEN  情况二  THEN  返回值二
ELSE  返回值
END 

此方法比较推荐使用在多种条件,每种条件的修改值且不同时。

代码语言:txt
复制
update salary set sex = case sex 
when 'm' then 'f'
when 'f' then 'm'
else 'noknow'
end

2.解题方式二:使用 if 表达式 if (expre, true, false)

代码语言:txt
复制
update salary set sex = if (sex = 'm', 'f', 'm')

3.解题方式三:使用 replace(str, search_str_content, replace_value)

代码语言:txt
复制
update salary set sex = replace('mf', sex, '') where sex != '';

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目表述
  • 解题思路
  • 解题答案
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档