描述:
給定一個 salary表,如下所示雕沉,有m=男性 和 f=女性的值 。交換所有的 f 和 m 值(例如去件,將所有 f 值更改為 m坡椒,反之亦然)。要求使用一個更新查詢尤溜,并且沒有中間臨時表倔叼。
先給出答案:
#第一種方法if
update salary set sex= if(sex='m','f','m');
#第二種方法
update salary set sex = case when sex='m' then 'f' else 'm' end;
IF表達(dá)式
IF(expr1,expr2,expr3)
如果 expr1 是TRUE ,則 IF()的返回值為expr2; 否則返回值則為 expr3宫莱。IF() 的返回值為數(shù)字值或字符串值丈攒,具體情況視其所在語境而定。這個類似于Java中的 ?:雙目運(yùn)算符
以上面的為例,update salary set sex= if(sex='m','f','m');
巡验。
sex='m'時际插,返回'f'。反之返回'm'
case when表達(dá)式
case具有兩種格式显设。簡單case函數(shù)和case搜索函數(shù)框弛。
--簡單case函數(shù)
case sex
when '1' then '男'
when '2' then '女’
else '其他' end
--case搜索函數(shù)
case when sex = '1' then '男'
when sex = '2' then '女'
else '其他' end