首页 > 数据库 > MySQL > 正文

mysql when case 条件判断语名用法

2024-07-24 12:39:17
字体:
来源:转载
供稿:网友

一个CASE表达式的默认返回值类型是任何返回值的相容集合类型,但具体情况视其所在语境而定,如果用在字符串语境中,则返回结果味字符串,如果用在数字语境中,则返回结果为十进制值、实值或整数值.

语法,代码如下:

  1. CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END 

实例,代码如下:

  1. SELECT CASE WHEN 10*2=30 THEN '30 correct'  
  2. WHEN 10*2=40 THEN '40 correct'  
  3. ELSE 'Should be 10*2=20'  
  4. END

复杂点,代码如下:

  1. SELECT CASE 10*2  
  2. WHEN 20 THEN '20 correct'  
  3. WHEN 30 THEN '30 correct'  
  4. WHEN 40 THEN '40 correct'  
  5. END

实例,代码如下:

  1. /*  
  2. mysql> SELECT Name, RatingID AS Rating,  
  3. -> CASE RatingID  
  4. -> WHEN 'R' THEN 'Under 17 requires an adult.'  
  5. -> WHEN 'X' THEN 'No one 17 and under.'  
  6. -> WHEN 'NR' THEN 'Use discretion when renting.'  
  7. -> ELSE 'OK to rent to minors.'  
  8. -> END AS Policy  
  9. -> FROM DVDs  
  10. -> ORDER BY Name;  
  11. +-----------+--------+------------------------------+  
  12. Name | Rating | Policy |  
  13. +-----------+--------+------------------------------+  
  14. | Africa | PG | OK to rent to minors. |  
  15. | Amadeus | PG | OK to rent to minors. |  
  16. | Christmas | NR | Use discretion when renting. |  
  17. | Doc | G | OK to rent to minors. |  
  18. | Falcon | NR | Use discretion when renting. |  
  19. | Mash | R | Under 17 requires an adult. |  
  20. | Show | NR | Use discretion when renting. |  
  21. View | NR | Use discretion when renting. |  
  22. +-----------+--------+------------------------------+  
  23. rows in set (0.01 sec)  
  24. */  
  25. Drop table DVDs;  
  26. CREATE TABLE DVDs (  
  27. ID SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,  
  28. Name VARCHAR(60) NOT NULL,  
  29. NumDisks TINYINT NOT NULL DEFAULT 1,  
  30. RatingID VARCHAR(4) NOT NULL,  
  31. StatID CHAR(3) NOT NULL  
  32. )  
  33. ENGINE=INNODB;  
  34. INSERT INTO DVDs (Name, NumDisks, RatingID, StatID)  
  35. VALUES ('Christmas', 1, 'NR''s1'),  
  36. ('Doc', 1, 'G''s2'),  
  37. ('Africa', 1, 'PG''s1'),  
  38. ('Falcon', 1, 'NR''s2'),  
  39. ('Amadeus', 1, 'PG''s2'),  
  40. ('Show', 2, 'NR''s2'),  
  41. ('View', 1, 'NR''s1'),  
  42. ('Mash', 2, 'R''s2');  
  43. SELECT Name, RatingID AS Rating,  
  44. CASE RatingID  
  45. WHEN 'R' THEN 'Under 17 requires an adult.'  
  46. WHEN 'X' THEN 'No one 17 and under.'  
  47. WHEN 'NR' THEN 'Use discretion when renting.'  
  48. ELSE 'OK to rent to minors.'--Vevb.com 
  49. END AS Policy  
  50. FROM DVDs  
  51. ORDER BY Name;

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表