MySQL的CASE WHEN语句的几个使用实例

 更新时间:2014年05月13日 10:00:19   作者:  
这篇文章主要介绍了MySQL的CASE WHEN语句的几个使用实例,需要的朋友可以参考下

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

复制代码 代码如下:
mysql> select * from sales;

9 rows in set (0.01 sec)

SELECT name AS Name,
    CASE category
    WHEN "Holiday" THEN "Seasonal"
    WHEN "Profession" THEN "Bi_annual"
    WHEN "Literary" THEN "Random" END AS "Pattern"
FROM sales;                   

9 rows in set (0.00 sec)

CREATE TABLE sales(
    num MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR(20), winter INT, spring INT,
    summer INT, fall INT, category CHAR(13), primary key(num)
) ENGINE=MyISAM;

insert into sales value(1, 'Java', 1067 , 200, 150, 267,'Holiday');
insert into sales value(2, 'C',970,770,531,486,'Profession');
insert into sales value(3, 'JavaScript',53,13,21,856,'Literary');
insert into sales value(4, 'SQL',782,357,168,250,'Profession');
insert into sales value(5, 'Oracle',589,795,367,284,'Holiday');
insert into sales value(6, 'MySQL',953,582,336,489,'Literary');
insert into sales value(7, 'Cplus',752,657,259,478,'Literary');
insert into sales value(8, 'Python',67,23,83,543,'Holiday');
insert into sales value(9, 'PHP',673,48,625,52,'Profession');


简单语句
复制代码 代码如下:

SELECT CASE WHEN 10*2=30 THEN '30 correct'
   WHEN 10*2=40 THEN '40 correct'
   ELSE 'Should be 10*2=20'
END AS `result`;

多重表达式
复制代码 代码如下:
SELECT CASE 10*2
   WHEN 20 THEN '20 correct'
   WHEN 30 THEN '30 correct'
   WHEN 40 THEN '40 correct'
   ELSE 'No results'
END AS `result`;

在SELECT查询中使用CASE WHEN
复制代码 代码如下:
CREATE TABLE DVDs (
   ID SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
   Name VARCHAR(60) NOT NULL,
   NumDisks TINYINT NOT NULL DEFAULT 1,
   RatingID VARCHAR(4) NOT NULL,
   StatID CHAR(3) NOT NULL
) ENGINE=INNODB;
INSERT INTO DVDs (Name, NumDisks, RatingID, StatID)
VALUES ('Christmas', 1, 'NR', 's1'), ('Doc', 1, 'G',  's2'), ('Africa', 1, 'PG', 's1'), ('Falcon', 1, 'NR', 's2'),
       ('Amadeus', 1, 'PG', 's2'), ('Show', 2, 'NR', 's2'), ('View', 1, 'NR', 's1'), ('Mash', 2, 'R',  's2');
SELECT Name, RatingID AS Rating,
   CASE RatingID
      WHEN 'R' THEN 'Under 17 requires an adult.'
      WHEN 'X' THEN 'No one 17 and under.'
      WHEN 'NR' THEN 'Use discretion when renting.'
      ELSE 'OK to rent to minors.'
   END AS Policy
FROM DVDs
ORDER BY Name;

8 rows in set (0.01 sec)

相关文章

  • 简单谈谈MySQL中的int(m)

    简单谈谈MySQL中的int(m)

    设置int型的时候,需要设置int(M),以前知道这个M最大是255,但是到底应该设置多少并没有在意。注意zerofill,今天我们来简单探讨下
    2016-09-09
  • MariaDB 新版本实力逆袭不仅仅是 MySQL 替代品

    MariaDB 新版本实力逆袭不仅仅是 MySQL 替代品

    MariaDB是MySQL源代码的一个分支,主要由开源社区在维护,采用GPL授权许可。MariaDB 10.0和MySQL 5.6的不同之处有那些,MariaDB和Percona有什么不同呢?下面通过本文详细了解下吧
    2016-12-12
  • Windows免安装MySQL 8.0.28 版本图文教程

    Windows免安装MySQL 8.0.28 版本图文教程

    这篇文章主要为大家详细介绍了Windows免安装MySQL8.0.28版本图文教程,文中安装步骤介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • 对MySQL几种联合查询的通俗解释

    对MySQL几种联合查询的通俗解释

    这篇文章主要介绍了LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。下面给个通俗的解释吧
    2015-01-01
  • Mysql实现全文检索、关键词跑分的方法实例

    Mysql实现全文检索、关键词跑分的方法实例

    这篇文章主要给大家介绍了关于Mysql实现全文检索、关键词跑分的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 关于@NotNull注解失效的原因之一

    关于@NotNull注解失效的原因之一

    这篇文章主要介绍了关于@NotNull注解失效的原因之一,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Mysql的水平分表与垂直分表的讲解

    Mysql的水平分表与垂直分表的讲解

    今天小编就为大家分享一篇关于Mysql的水平分表与垂直分表的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • 关于MySQL存取图片的三种方式(含源码示例)

    关于MySQL存取图片的三种方式(含源码示例)

    最近在做小程序的后台,要求将小程序用户以upload方法上传的图片保存到mysql数据库中,然后机缘巧合三种方式都试了,所以专门整理出来分享给大家,可能有的地方说的不太对,欢迎大家帮纠正,需要的朋友可以参考下
    2024-04-04
  • mysql开启binlog步骤讲解

    mysql开启binlog步骤讲解

    在本文里我们给大家分享了关于mysql开启binlog的方法和相关知识点,对此有需要的朋友们跟着学习下。
    2019-03-03
  • MySQL判断查询条件是否包含某字符串的7种方式总结

    MySQL判断查询条件是否包含某字符串的7种方式总结

    SQLServer数据库死锁是指在多个事务同时访问数据库资源时,发生了互相等待对方所持有资源的情况,导致所有事务无法继续执行的现象,这篇文章主要给大家介绍了关于MySQL判断查询条件是否包含某字符串的7种方式,需要的朋友可以参考下
    2024-07-07

最新评论