MySQL CASE语句的用法
MySQL 中 CASE 语句的格式是:
【实例】使用 CASE value WHEN 语句执行分支操作,输入语句如下:
对于 CASE WHEN v1 THEN r1 [WHEN v2 THEN r2]… ELSE rn+1] END,某个 vn 值为 TRUE 时,返回对应位置 THEN 后面的结果;如果所有值都不为 TRUE,则返回 ELSE 后的 rn+1。
【实例】使用 CASE WHEN 语句执行分支操作,输入语句如下:
提示:一个 CASE 表达式的默认返回值类型是任何返回值的相容集合类型,但具体情况视其所在的语境而定。如果用在字符串语境中,则返回结果为字符串。如果用在数字语境中,则返回结果为十进制值、实数值或整数值。
CASE expr WHEN v1 THEN r1 [WHEN v2 THEN r2]…[ELSE rn+1] END
如果 expr 值等于某个 vn,则返回对应位置 THEN 后面的结果;如果与所有值都不相等,则返回 ELSE 后面的 rn+1。【实例】使用 CASE value WHEN 语句执行分支操作,输入语句如下:
mysql> SELECT CASE 2 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END; +------------------------------------------------------------------+ | CASE 2 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END | +------------------------------------------------------------------+ | two | +------------------------------------------------------------------+CASE 后面的值为 2,与第二条分支语句 WHEN 后面的值相等,因此返回结果为“two”。
对于 CASE WHEN v1 THEN r1 [WHEN v2 THEN r2]… ELSE rn+1] END,某个 vn 值为 TRUE 时,返回对应位置 THEN 后面的结果;如果所有值都不为 TRUE,则返回 ELSE 后的 rn+1。
【实例】使用 CASE WHEN 语句执行分支操作,输入语句如下:
mysql> SELECT CASE WHEN 1<0 THEN 'true' ELSE 'false' END; +------------------------------------------------------------+ | CASE WHEN 1<0 THEN 'true' ELSE 'false' END | +------------------------------------------------------------+ | false | +------------------------------------------------------------+1<0 的结果为 FALSE,因此函数返回值为 ELSE 后面的“false”。
提示:一个 CASE 表达式的默认返回值类型是任何返回值的相容集合类型,但具体情况视其所在的语境而定。如果用在字符串语境中,则返回结果为字符串。如果用在数字语境中,则返回结果为十进制值、实数值或整数值。