我需要根據另一列值替換最多9列的結果。 如果「角色」列是值「SeniorManagement」,我想用默認值替換默認層次值。 以下是我現在可以做到這一點:SQL根據一列值替換多個值
, CASE
WHEN d.Role = 'SeniorManagement'
THEN (Replace(p.Firstname,'John','Joe')) END as First
, CASE
WHEN d.Role = 'SeniorManagement'
THEN (Replace(p.Lastname,'TopDog','AssignedPerson')) END as Last
, CASE...
我的問題是,有沒有辦法將這些一個更簡潔的方式?
僞(我知道:-)
, CASE
WHEN d.Role = 'SeniorManagement'
THEN (Replace(p.Firstname,'John','Joe')) as First
THEN (Replace(p.Lastname,'TopDog','AssignedPerson')) as Last
THEN (Replace(p.Email,'[email protected]','[email protected]')) as Email
感謝
這可能是好的,更好地瞭解您的需要(例如顯示更多查詢的),會導致您的示例代碼,我會說:好了,只是做'WHERE d.Role ='SeniorManagement'',因爲在你的情況下你沒有其他條件... –
如果你想更新記錄來替換一些其他人,這種方式不是很安全,它可以變得有點當人們擁有相同的名字時會變得凌亂。只需使用多個UPDATE語句與不同的where子句 – jazzytomato
我很欣賞這個建議。謝謝。以下是一些額外的信息。我不允許覆蓋任何東西。我這樣做的原因是,絕不應該根據任何結果聯繫頂級玩家。這些結果將顯示在一個頁面上。層次結構是數字的,每個結果都建立在另一個結果上。所以,如果TopDog最終進入這些領域 - 我需要用他的直接上市報告來替換。 – Sean