今天看到了一道题, 简单讲就是核心问题, 表 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;
来源: http://www.bubuko.com/infodetail-2874264.html