627. Swap Salary
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
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Joeの小屋!
評論
ValineDisqus



