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

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

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

简单语句

  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;

在SELECT查询中使用CASE WHEN

  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. 8 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.'
  49. END AS Policy
  50. FROM DVDs
  51. ORDER BY Name;

转载于:https://blog.51cto.com/sucre/910501

MySQL 的CASE WHEN 语句使用说明相关推荐

  1. MySQL 的CASE WHEN 语句

    mysql数据库中CASE WHEN语句. case when语句,用于计算条件列表并返回多个可能结果表达式之一. CASE 具有两种格式: 简单 CASE 函数将某个表达式与一组简单表达式进行比较以 ...

  2. mysql的case then语句_mysql case then使用

    表的创建 CREATE TABLE `lee` ( `id` int(10) NOT NULL AUTO_INCREMENT, `name` char(20) DEFAULT NULL, `birth ...

  3. mysql关于case when的用法举例

    原文链接:http://www.cnblogs.com/clphp/p/6256207.html Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数  CASE sex  ...

  4. mysql中使用case when语句

    在web开发过程中,很多时候良好的sql不仅可以加快数据响应时间,更重要可以省略大量的后端代码.比如说对大量数据的分组,统计(求和,求差,求平均,求百分比等等),排序,如果可以放到sql里面去做,还是 ...

  5. mysql的 case用法_mysql数据库case语句的使用方法

    用case语句就可以很好的解决这个问题:  代码如下 复制代码 select a.master_id,sum(case when b.status=6 then 1 else 0 end) as to ...

  6. 学习OceanBase|OB-ODBC 驱动和 MySQL 官方 MySQL-ODBC 驱动的使用说明和配置方法

    本文介绍了 OceanBase 数据库的 OB-ODBC 驱动和 MySQL 官方 MySQL-ODBC 驱动的使用说明和配置方法. 开放数据库互连(ODBC)是微软公司开放服务结构( WOSA,Wi ...

  7. MySQL——基于CASE WHEN的常用查询

    RDBMS语句执行顺序[补充] 这里我们简单提一下关于SQL语句的执行问题:经过前面7个查询关键词的学习,你会发现SQL语句的书写顺序与执行顺序是不一样的. # SQL语句书写顺序 select di ...

  8. left join on用法_MySQL 多表查询 quot;Joinquot;+“case when”语句总结

    本部分讲述:join系列全部总结和case when语句用法 join系列:表加法.Cross join .inner join.left join.right join.full outer joi ...

  9. CASE WHEN语句中加IN应该如何使用

    本文来说下CASE WHEN语句中加IN应该如何使用 文章目录 实例测试 本文小结 实例测试 mysql脚本程序 SELECTIFNULL( COUNT( CASE WHEN T.state IN ( ...

最新文章

  1. 大数据SQL日常学习——CASE WHEN THEN END用法
  2. x+2y+3z=n的非负整数解数
  3. 024_Jedis连接池
  4. 强化学习(三)---马尔科夫决策过程
  5. ide在控制台输入编译命令_快速编译调试 Redis
  6. 版权文字:Power by DedeCms 如何去除?
  7. 理解SSD多盒-实时目标检测
  8. ubuntu crontab 不执行的解决方法
  9. 线程并发安全导致内存溢出
  10. 四脚贴片晶振的引脚区分
  11. MRP游戏软件常见问题解答以及破解方法!(新手必看)
  12. CronTrigger 示例 1
  13. Redis 官方可视化工具,高颜值,功能太强大!
  14. 单片机怎么实现模块化编程?思维+实例+系统教程(实用程度令人发指)
  15. 到底什么是dp思想(内含大量经典例题,附带详细解析)
  16. BZOJ2794[Poi2012]Cloakroom——离线+背包
  17. 移动联通电信老用户如何转腾讯大王卡、蚂蚁宝卡、鱼卡等技巧
  18. html5笔迹画图,html5绘图工具canvas模拟笔迹绘画特效
  19. wsl(Windows Subsystem for Linux)启动多个子系统和设置默认启动子系统
  20. j1_09_02。冒泡排序法。实现冒泡游戏功能关键算法。要求:综合使用分支、循环结构语句实现,直接输出结果不计分。

热门文章

  1. oracle rac 创建ocr,Oracle rac 11g在线添加ocr,votedisk
  2. 接收大文件流_一文搞定 Node.js 流 (Stream)
  3. 联想微型计算机怎么恢复系统,联想电脑台式一体机怎么重装系统 台式一体机重装系统...
  4. c语言编程阿拉伯数字转中文,阿拉伯数字转中文大(小)写的函数
  5. web 前端绘制折线_html5绘制折线图
  6. 微信java 签名验证_JAVA版微信小程序用户数据的签名验证和加解密
  7. 查看oracle的版本、所在表空间、字符集及查询一个表的所有字段名和数据类型
  8. ajax上传多行数据及数组循环添加对象
  9. 开始VC6学习之旅2
  10. [VB]用记录集填充表格函数