SQL—day6
題目
給定一個 salary 表,如下所示,有 m = 男性 和 f = 女性 的值,交換所有的 f 和 m 值(例如,將所有 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 |
預備知識
①
CASE WHEN
一旦滿足了某一個WHEN, 則這一條資料就會退出CASE WHEN , 不再考慮其他CASE
即
CASE函式只回傳第一個符合條件的值,剩下的CASE部分將會被自動忽略.
②
if(a,b,c)
if判斷,如果a滿足條件,回傳b,否則回傳c
③
ASCII(string) : 將字串的第一個字符轉換成ASCII碼的形式
CHAR(int) : 將ASCII碼轉換成字符
char(ASCII(Col_Num)+1) #將字符順延一位
思路
1. CASE WHEN 匹配
2. IF函式篩選
3. ASCII轉化
代碼
update salary
set sex = (
case sex when 'm' then 'f' else 'm' end
);
update salary set sex = if(sex='m','f','m');
update salary set sex = char(ascii('m') + ascii('f') - ascii(sex));
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/swap-salary
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/244345.html
標籤:其他
上一篇:抖音資料采集教程,Android群控黑盒呼叫,Sekiro使用手冊
下一篇:必知必會的MySQL基礎知識
