Mysql条件判断语句case when语法详解

严格来讲,不应该叫“mysql条件判断语句case when语法”的,它的专业语术是:“mysql流程控制语句case语法”;这一点对于做程序的人来说一定要清楚。

 

CASE语法:

  1. CASE case_value
  2. WHEN when_value THEN statement_list
  3.     [WHEN when_value THEN statement_list] ...
  4.     [ELSE statement_list]
  5. END CASE

  1. CASE
  2. WHEN search_condition THEN statement_list
  3.     [WHEN search_condition THEN statement_list] ...
  4.     [ELSE statement_list]
  5. END CASE

 

CASE存储程序 的语句实现了一个复杂的条件结构。

 

注意:也有一个表达,这不同于这里描述的 陈述。该 声明不能有一个 条款,而是终止 而不是。 CASE CASE CASEELSE NULLEND CASEEND

 

CASE语法说明:

对于第一个语法,case_value是一个表达式。将该值与when_value每个WHEN子句中的表达式进行 比较, 直到其中一个相等。当when_value找到平等时,相应的THEN子句 statement_list执行。如果不 when_value相等,则该 ELSE子句 statement_list执行,如果有的话。

 

这个语法不能用于测试是否相等, NULL因为NULL = NULL 是错误的。

 

对于第二种语法,将对每个WHEN子句 search_condition表达式进行求值,直到其中一个为真,此时它的对应 THEN子句将 statement_list执行。如果不 search_condition相等,则该 ELSE子句 statement_list执行,如果有的话。

 

如果否when_value或 search_condition匹配测试的值,并且CASE语句不包含任何ELSE子句,则CASE语句错误结果将找不到Case。

 

每个statement_list由一个或多个SQL语句组成; 一个空的 statement_list是不允许的。

 

CASE代码示例:

 

1、要处理没有任何值与任何WHEN子句匹配的情况 ,请使用ELSE 包含空白 BEGIN ... END块的情况,如下所示。

  1. DELIMITER |
  2. CREATE PROCEDURE p()
  3. BEGIN
  4. DECLARE v INT DEFAULT 1;
  5. CASE v
  6. WHEN 2 THEN SELECT v;
  7. WHEN 3 THEN SELECT 0;
  8. ELSE
  9. BEGIN
  10. END;
  11. END CASE;
  12. END;
  13.   |

 

2、sql语句查询时给某个空字段赋值

  1. SELECT
  2. CASE
  3. WHEN field= '' THEN
  4.     '1'
  5. WHEN field IS NULL THEN
  6.     '1'
  7. ELSE
  8.     field
  9. END
  10. FROM
  11. tablename

Mysql条件判断语句case when

    A+
发布日期:2017年12月03日  所属分类:Mysql
最后修改时间:2017-12-03 14:30
评分: (当前没有评级)
wordpress站群服务 泛解析二级域名站群 二级目录站群
wordpress站群服务 泛解析二级域名站群 二级目录站群
  • ¥ 1999.9元
  • 市场价:4800元
SEO顾问服务 中小型网站 单站/最低99.9元 全方位优化
SEO顾问服务 中小型网站 单站/最低99.9元 全方位优化
  • ¥ 99.9元
  • 市场价:5000元
服务器管理面板/主机控制面板“安装”服务
服务器管理面板/主机控制面板“安装”服务
  • ¥ 9.9元
  • 市场价:49.9元
永久免费SSL证书服务 HTTPS申请 安装 配置 支持通配符*
永久免费SSL证书服务 HTTPS申请 安装 配置 支持通配符*
  • ¥ 199.9元
  • 市场价:20000元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: