加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

如何在MySQL CASE表达式中使用“OR”条件?

发布时间:2020-12-11 23:32:27 所属栏目:MySql教程 来源:网络整理
导读:我有一个包含CASE表达式语句的过程,如下所示: BEGIN....WHILE counter 当我调用上述过程时,OR语句的案例要么被完全跳过,要么只有列表中的第一项被匹配.我究竟做错了什么?最佳答案 CASE ranking WHEN 1 THEN 'alpha' WHEN 2 THEN 'beta' WHEN 10 THEN 'char

我有一个包含CASE表达式语句的过程,如下所示:

BEGIN
....
WHILE counter < total DO
....

 CASE ranking
  WHEN 1 OR 51 OR 100 OR 167 THEN SET
   project_name = 'alpha';
  WHEN 2 THEN SET
   project_name = 'beta';
  WHEN 10 OR 31 OR 40 OR 61 THEN SET
   project_name = 'charlie';
  ....
  ELSE SET
   project_name = 'zelta';
 END CASE;

 INSERT INTO project (id,name) VALUES (LAST_INSERT_ID(),project_name);
 SET counter = counter + 1;

END WHILE;
END
$$
DELIMITER ;

当我调用上述过程时,OR语句的案例要么被完全跳过,要么只有列表中的第一项被匹配.我究竟做错了什么? 最佳答案

CASE ranking
  WHEN 1 THEN 'alpha' 
  WHEN 2 THEN 'beta'  
  WHEN 10 THEN 'charlie' 
  ELSE 'zelta' 
END CASE;

您可以使用WHEN具有的表达式之一,但不能将它们混合使用.

1)何时when_expression
???是一个简单的表达式,当使用简单的CASE格式时,input_expression与之比较. when_expression是任何有效的表达式. input_expression和每个when_expression的数据类型必须相同或必须是隐式转换.

2)WHEN Boolean_expression
使用搜索的CASE格式时是否计算布尔表达式. Boolean_expression是任何有效的布尔表达式.

你可以编程:

1)

 CASE ProductLine
         WHEN 'R' THEN 'Road'
         WHEN 'M' THEN 'Mountain'
         WHEN 'T' THEN 'Touring'
         WHEN 'S' THEN 'Other sale items'
         ELSE 'Not for sale'

2)

CASE 
         WHEN ListPrice =  0 THEN 'Mfg item - not for resale'
         WHEN ListPrice < 50 THEN 'Under $50'
         WHEN ListPrice >= 50 and ListPrice < 250 THEN 'Under $250'
         WHEN ListPrice >= 250 and ListPrice < 1000 THEN 'Under $1000'
         ELSE 'Over $1000'
      END

但无论如何,您可以预期变量排名将在布尔表达式中进行比较.

http://msdn.microsoft.com/en-us/library/ms181765.aspx

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读