我需要根据另一列值替换最多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