开发者社区> 科技小先锋> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

MySQL 的CASE WHEN 语句使用说明

简介:
+关注继续查看

MySQL 的CASE WHEN 语句使用说明,需要的朋友可以参考下。

使用CASE WHEN进行字符串替换处理


  1.  
  2. /*   
  3. mysql> select * from sales;   
  4. +-----+------------+--------+--------+--------+------+------------+   
  5. | num | name | winter | spring | summer | fall | category |   
  6. +-----+------------+--------+--------+--------+------+------------+   
  7. | 1 | Java | 1067 | 200 | 150 | 267 | Holiday |   
  8. | 2 | C | 970 | 770 | 531 | 486 | Profession |   
  9. | 3 | JavaScript | 53 | 13 | 21 | 856 | Literary |   
  10. | 4 | SQL | 782 | 357 | 168 | 250 | Profession |   
  11. | 5 | Oracle | 589 | 795 | 367 | 284 | Holiday |   
  12. | 6 | MySQL | 953 | 582 | 336 | 489 | Literary |   
  13. | 7 | Cplus | 752 | 657 | 259 | 478 | Literary |   
  14. | 8 | Python | 67 | 23 | 83 | 543 | Holiday |   
  15. | 9 | PHP | 673 | 48 | 625 | 52 | Profession |   
  16. +-----+------------+--------+--------+--------+------+------------+   
  17. rows in set (0.01 sec)   
  18. mysql> SELECT name AS Name,   
  19. -> CASE category   
  20. -> WHEN "Holiday" THEN "Seasonal"   
  21. -> WHEN "Profession" THEN "Bi_annual"   
  22. -> WHEN "Literary" THEN "Random" END AS "Pattern"   
  23. -> FROM sales;   
  24. +------------+-----------+   
  25. Name | Pattern |   
  26. +------------+-----------+   
  27. | Java | Seasonal |   
  28. | C | Bi_annual |   
  29. | JavaScript | Random |   
  30. | SQL | Bi_annual |   
  31. | Oracle | Seasonal |   
  32. | MySQL | Random |   
  33. | Cplus | Random |   
  34. | Python | Seasonal |   
  35. | PHP | Bi_annual |   
  36. +------------+-----------+   
  37. rows in set (0.00 sec)   
  38. */   
  39. Drop table sales;   
  40. CREATE TABLE sales(   
  41. num MEDIUMINT NOT NULL AUTO_INCREMENT,   
  42. name CHAR(20),   
  43. winter INT,   
  44. spring INT,   
  45. summer INT,   
  46. fall INT,   
  47. category CHAR(13),   
  48. primary key(num)   
  49. )type=MyISAM;   
  50. insert into sales value(1, 'Java', 1067 , 200, 150, 267,'Holiday');   
  51. insert into sales value(2, 'C',970,770,531,486,'Profession');   
  52. insert into sales value(3, 'JavaScript',53,13,21,856,'Literary');   
  53. insert into sales value(4, 'SQL',782,357,168,250,'Profession');   
  54. insert into sales value(5, 'Oracle',589,795,367,284,'Holiday');   
  55. insert into sales value(6, 'MySQL',953,582,336,489,'Literary');   
  56. insert into sales value(7, 'Cplus',752,657,259,478,'Literary');   
  57. insert into sales value(8, 'Python',67,23,83,543,'Holiday');   
  58. insert into sales value(9, 'PHP',673,48,625,52,'Profession');   
  59. select * from sales;   
  60. SELECT name AS Name,   
  61. CASE category   
  62. WHEN "Holiday" THEN "Seasonal"   
  63. WHEN "Profession" THEN "Bi_annual"   
  64. WHEN "Literary" THEN "Random" END AS "Pattern"   
  65. FROM sales;  

简单语句


  1.  
  2. SELECT CASE WHEN 10*2=30 THEN '30 correct'   
  3. WHEN 10*2=40 THEN '40 correct'   
  4. ELSE 'Should be 10*2=20'   
  5. 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;  

在SELECT查询中使用CASE WHEN


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

 


本文转自sucre03 51CTO博客,原文链接:http://blog.51cto.com/sucre/910501,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
(废除所有安装win,linux ,现在只需要启动docker就好)docker linux mysql 安装
  docker linux  mysql  安装   既然到处都有现成的,那我们就用吧,不自己手动安装了,解压安装很麻烦   该例子可以类推,再也不需要安装 linux  版,还是window版mysql了,都只要启动下 docker 版的就好了。
1105 0
center os7 安装mysql
安装mariadb MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。
1552 0
MySQL示例数据库sakila-db的安装导入
MySQL示例数据库sakila-db的安装导入 下载:https://dev.mysql.com/doc/index-other.html   或  http://downloads.
1248 0
【MySQL基础】MySQL安装第一弹-MySQL5.7安装
MySQL基础 -MySQL安装第一弹-MySQL5.7安装
4221 0
【MySQL基础】MySQL安装第二弹-Percona5.7安装
MySQL基础 ---MySQL安装第二弹-Percona5.7安装
3141 0
【MySQL基础】MySQL安装第三弹-mariadb-10.2.8
MySQL基础-MySQL安装第二弹-Percona5.7安装
1751 0
Mysql 5.7.19三种安装方式手册
Mysql 5.7.19三种安装方式手册 ** 环境准备 操作系统:CentOS 软件:MySQL-5.7.19 ** ** 一、RPM 方式安装 进入官方网站:https://www.
2161 0
如何安装与连接MySQL?
本文用详细的步骤说明,帮助你一步步掌握MySQL的下载、安装和服务启动,客户端的安装、连接和测试。帮你避开初学MySQL使用中的那些坑。 需求 这是一个大数据时代。
1154 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
好的 MySQL 兼容可以做到什么程度
立即下载
PostgresChina2018_张启程_为什么我们抛弃MongoDB和MySQL,选择PgSQL
立即下载
MySQL 5.7让优化更轻松
立即下载