今天看到了一道題,簡單講就是核心問題,表t中有兩列a,b,使用sql實現:當a>b時,選擇a列,否則選擇b列。
之前工作中也遇到類似問題,需要使用Mysql條件判斷函數IF或者CASE。
- IF函數的語法是 :IF(expr,v1,v2),如果表達式expr是true(expr<>0 and expr <> NULL),則函數返回v1,反之返回v2。
所以這道題可以這么寫:
select IF(a>b, a , b) from t;
- CASE函數:CASE expr WHEN v1 THEN r1 [WHEN v2 THEN r2] [ELSE rm] END, 如果expr值等於某個vn,則返回對應位置THEN后面的結果。如果與所有值都不想等,則返回ELSE后面的rn
這道題也可以這么寫:
select CASE WHEN a>b THEN a ELSE b from t;