想了解MySQL中的COUNTCASE和WHEN语句的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于mysql的casewhen用法的相关问题,此外,我们还将为您介绍关于Mysql中的CAS
想了解MySQL中的COUNT CASE和WHEN语句的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于mysql的case when用法的相关问题,此外,我们还将为您介绍关于Mysql 中的CASE WHEN 用法、MySQL 的 CASE WHEN 语句、MySQL 的CASE WHEN 语句使用说明、MySQL_SQL中的case when then else end用法的新知识。
本文目录一览:- MySQL中的COUNT CASE和WHEN语句(mysql的case when用法)
- Mysql 中的CASE WHEN 用法
- MySQL 的 CASE WHEN 语句
- MySQL 的CASE WHEN 语句使用说明
- MySQL_SQL中的case when then else end用法
MySQL中的COUNT CASE和WHEN语句(mysql的case when用法)
如何在MySQL查询中使用COUNT CASE和WHEN语句来计算一个MySQL查询中的数据何时为NULL,何时为非NULL?
Mysql 中的CASE WHEN 用法
在SELECT语句查询中可以使用CASE WHEN对查询出来的结果,进行一个类似于if else的判断。
具体的用法
1.
SELECT a.website_id, b.customer_name, a.website_enddate, c.member_name, d.websitetype_id,
CASE
WHEN d.websitetype_id=1 THEN 400
WHEN d.websitetype_id=2 THEN 400
WHEN d.websitetype_id=12 THEN 5800
WHEN d.websitetype_id=13 THEN 5800
WHEN d.websitetype_id=13 THEN 5800
END as money
FROM ……
2.
SELECT a.website_id, b.customer_name, a.website_enddate, c.member_name, d.websitetype_id,
CASE d.websitetype_id
WHEN 1 THEN 400
WHEN 2 THEN 400
WHEN 12 THEN 5800
WHEN 13 THEN 5800
WHEN 13 THEN 5800
END as money
FROM ……
3. 一个简单的IF判断
IF(判断语句,true返回的值,false返回的值) 使用位置和 CASE WHEN 位置一样,语法很简单,有点像php中的三元运算法。
MySQL 的 CASE WHEN 语句
无详细内容 MySQL /*
/* mysql> select * from sales; +-----+------------+--------+--------+--------+------+------------+ | num | name | winter | spring | summer | fall | category | +-----+------------+--------+--------+--------+------+------------+ | 1 | Java | 1067 | 200 | 150 | 267 | Holiday | | 2 | C | 970 | 770 | 531 | 486 | Profession | | 3 | JavaScript | 53 | 13 | 21 | 856 | Literary | | 4 | SQL | 782 | 357 | 168 | 250 | Profession | | 5 | Oracle | 589 | 795 | 367 | 284 | Holiday | | 6 | MySQL | 953 | 582 | 336 | 489 | Literary | | 7 | Cplus | 752 | 657 | 259 | 478 | Literary | | 8 | Python | 67 | 23 | 83 | 543 | Holiday | | 9 | PHP | 673 | 48 | 625 | 52 | Profession | +-----+------------+--------+--------+--------+------+------------+ 9 rows in set (0.01 sec) mysql> SELECT name AS Name, -> CASE category -> WHEN "Holiday" THEN "Seasonal" -> WHEN "Profession" THEN "Bi_annual" -> WHEN "Literary" THEN "Random" END AS "Pattern" -> FROM sales; +------------+-----------+ | Name | Pattern | +------------+-----------+ | Java | Seasonal | | C | Bi_annual | | JavaScript | Random | | SQL | Bi_annual | | Oracle | Seasonal | | MySQL | Random | | Cplus | Random | | Python | Seasonal | | PHP | Bi_annual | +------------+-----------+ 9 rows in set (0.00 sec) */ Drop table sales; 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) )type=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 * from sales; SELECT name AS Name, CASE category WHEN "Holiday" THEN "Seasonal" WHEN "Profession" THEN "Bi_annual" WHEN "Literary" THEN "Random" END AS "Pattern" FROM sales;
SELECT CASE WHEN 10*2=30 THEN ''30 correct'' WHEN 10*2=40 THEN ''40 correct'' ELSE ''Should be 10*2=20'' END;
SELECT CASE 10*2 WHEN 20 THEN ''20 correct'' WHEN 30 THEN ''30 correct'' WHEN 40 THEN ''40 correct'' END;
/* mysql> 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; +-----------+--------+------------------------------+ | Name | Rating | Policy | +-----------+--------+------------------------------+ | Africa | PG | OK to rent to minors. | | Amadeus | PG | OK to rent to minors. | | Christmas | NR | Use discretion when renting. | | Doc | G | OK to rent to minors. | | Falcon | NR | Use discretion when renting. | | Mash | R | Under 17 requires an adult. | | Show | NR | Use discretion when renting. | | View | NR | Use discretion when renting. | +-----------+--------+------------------------------+ 8 rows in set (0.01 sec) */ Drop table DVDs; 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;
MySQL 的CASE WHEN 语句使用说明
MySQL 的CASE WHEN 语句使用说明,需要的朋友可以参考下。
使用CASE WHEN进行字符串替换处理代码如下:
/*
mysql> select * from sales;
+-----+------------+--------+--------+--------+------+------------+
| num | name | winter | spring | summer | fall | category |
+-----+------------+--------+--------+--------+------+------------+
| 1 | Java | 1067 | 200 | 150 | 267 | Holiday |
| 2 | C | 970 | 770 | 531 | 486 | Profession |
| 3 | JavaScript | 53 | 13 | 21 | 856 | Literary |
| 4 | SQL | 782 | 357 | 168 | 250 | Profession |
| 5 | Oracle | 589 | 795 | 367 | 284 | Holiday |
| 6 | MySQL | 953 | 582 | 336 | 489 | Literary |
| 7 | Cplus | 752 | 657 | 259 | 478 | Literary |
| 8 | Python | 67 | 23 | 83 | 543 | Holiday |
| 9 | PHP | 673 | 48 | 625 | 52 | Profession |
+-----+------------+--------+--------+--------+------+------------+
9 rows in set (0.01 sec)
mysql> SELECT name AS Name,
-> CASE category
-> WHEN "Holiday" THEN "Seasonal"
-> WHEN "Profession" THEN "Bi_annual"
-> WHEN "Literary" THEN "Random" END AS "Pattern"
-> FROM sales;
+------------+-----------+
| Name | Pattern |
+------------+-----------+
| Java | Seasonal |
| C | Bi_annual |
| JavaScript | Random |
| SQL | Bi_annual |
| Oracle | Seasonal |
| MySQL | Random |
| Cplus | Random |
| Python | Seasonal |
| PHP | Bi_annual |
+------------+-----------+
9 rows in set (0.00 sec)
*/
Drop table sales;
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)
)type=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 * from sales;
SELECT name AS Name,
CASE category
WHEN "Holiday" THEN "Seasonal"
WHEN "Profession" THEN "Bi_annual"
WHEN "Literary" THEN "Random" END AS "Pattern"
FROM sales;
简单语句
代码如下:
SELECT CASE WHEN 10*2=30 THEN ''30 correct''
WHEN 10*2=40 THEN ''40 correct''
ELSE ''Should be 10*2=20''
END;
多重表达式
代码如下:
SELECT CASE 10*2
WHEN 20 THEN ''20 correct''
WHEN 30 THEN ''30 correct''
WHEN 40 THEN ''40 correct''
END;
在SELECT查询中使用CASE WHEN
代码如下:
/*
mysql> 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;
+-----------+--------+------------------------------+
| Name | Rating | Policy |
+-----------+--------+------------------------------+
| Africa | PG | OK to rent to minors. |
| Amadeus | PG | OK to rent to minors. |
| Christmas | NR | Use discretion when renting. |
| Doc | G | OK to rent to minors. |
| Falcon | NR | Use discretion when renting. |
| Mash | R | Under 17 requires an adult. |
| Show | NR | Use discretion when renting. |
| View | NR | Use discretion when renting. |
+-----------+--------+------------------------------+
8 rows in set (0.01 sec)
*/
Drop table DVDs;
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;
MySQL_SQL中的case when then else end用法
原文地址
https://www.cnblogs.com/prefect/p/5746624.html
Case具有两种格式。简单Case函数和Case搜索函数。