[討論] MySQL 如何取代欄位內資料

看板Database (資料庫)作者 (QQ)時間7年前 (2017/01/08 14:50), 7年前編輯推噓2(204)
留言6則, 2人參與, 最新討論串1/1
資料庫名稱:MySQL 資料庫版本:5.7.18 內容/問題描述: 大家好 初學程式 在MySQL碰到一些問題 想請教各位 以下為原始資料 Name Salary ---------------- Peter 52000 Mary Null John 0 要將上面資料變成如下 Name Salary ---------------- Peter 52000 Mary Already Left John Already Left 我試過以下兩個寫法都error無法改成上述 (我的table為emp) mysql-> select Name, Salary from emp UPDATE emp SET Salary = REPLACE(Salary,'NULL','Already Left') where emp is NULL; mysql-> select Name, Salary from emp if (Salary='NULL') or (Salary='0') "Already Left"; 麻煩各位指點一下 有什麼其他解法 先謝謝大家了! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.161.207.163 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1483858253.A.C6F.html ※ 編輯: qw151300 (1.161.207.163), 01/08/2017 15:05:49

01/08 15:37, , 1F
SELECT Name, IF(Salary, Salary, "Already Left")
01/08 15:37, 1F

01/08 15:37, , 2F
FROM emp ;
01/08 15:37, 2F
成功了!! 感謝hwChang大的指點 ※ 編輯: qw151300 (1.161.207.163), 01/08/2017 16:07:05

01/08 16:29, , 3F
詢問一下若是MS SQL要怎麼寫?我遇到資料格式轉換的問題
01/08 16:29, 3F

01/08 17:13, , 4F
文章中的salary是varchar還是integer?
01/08 17:13, 4F

01/08 17:39, , 5F
若是varchar可以直接做 select Name, case when Salary>0
01/08 17:39, 5F

01/08 17:40, , 6F
then Salary else 'Already left' End as Salary from tmp
01/08 17:40, 6F
文章代碼(AID): #1OSU5Dnl (Database)
文章代碼(AID): #1OSU5Dnl (Database)