627. Swap Salary

(資訊來自於leetcode 627 Swap Salary)

交換工資

這是一個叫做Salary的主Table,裡面的資料欄位有【id】,【name】,【sex】,【salary】
id 是該表的主鍵列。
性別列是(’m’,’f’)類型的 ENUM 值。
該表包含有關員工的信息

題目:

編寫一個 SQL 查詢以使用單個更新語句交換所有’f’和’m’值(即,將所有’f’值更改為’m’,反之亦然),並且沒有中間臨時表。

請注意,您必須編寫單個更新語句,不要為此問題編寫任何選擇語句。

查詢結果格式如下例所示。

資料庫內容為下圖

而我們希望出來的結果為下面這樣

把性別原本是’m’的改變成’f’。

解題方式:

第一種解題方式MS SQL Server

update Salary  set sex = case when sex = 'm' then 'f' else 'm' end

第二種解題方式MySQL
update Salary  set sex = if(sex='m','f','m')

解析:
題目要我們用單個更新語句來交換性別值,所以我們不用SELECT的方式來做更換,這邊可以用UPDATE直接去做值的更新,所以在加個判斷式去做判斷當性別值是’m’時轉成’f’其他的就是’m’。
By. @OtbmOtOMRzCEOxuIjDNc8A