Hive/Sql

leetcode(sql)627. Swap Salary

2019-06-27  本文已影响0人  马路仔
  1. Swap Salary

给定一个表工资,例如下面的这个,它具有m=男性和f=女性的值。交换所有f和m值(即,将所有f值更改为m,反之亦然),只使用一条update语句,不使用中间临时表。注意,您必须编写一个update语句,对于这个问题不要编写任何select语句。

Salary

id name sex salary
1 A m 2500
2 B f 1500
3 C m 5500
4 D f 500

运行update语句后,上面的工资表应该有以下几行

id name sex salary
1 A f 2500
2 B m 1500
3 C f 5500
4 D m 500

我自己刚开始想了很久也没想出正确答案,提交了都是错的,直接看答案的,哈哈哈,

UPDATE salary
SET
    sex = 
    CASE sex
        WHEN 'm' THEN 'f'
    ELSE 'm'
    END;

这里对sex列的值进行逐个判断,如果为 m 则 为 f ,反之ELSE 'm'。

这里用的是CASE 表达式,

CASE WHEN < 求值表达式 > THEN < 表达式 >
       WHEN < 求值表达式 > THEN < 表达式 >
       WHEN < 求值表达式 > THEN < 表达式 >
        .
        .
        .
       ELSE < 表达式 >
END

自己还是不熟悉sql里的语法,练的太少了。

上一篇下一篇

猜你喜欢

热点阅读