mysql case when 条件过滤
[1].[代码] 使用CASE WHEN进行字符串替换处理 跳至 [1] [2] [3] [4]
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
/*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 categoryWHEN "Holiday" THEN "Seasonal"WHEN "Profession" THEN "Bi_annual"WHEN "Literary" THEN "Random" END AS "Pattern"FROM sales; |
[2].[代码] 简单语句 跳至 [1] [2] [3] [4]
|
1
2
3
4
|
SELECT CASE WHEN 10*2=30 THEN '30 correct' WHEN 10*2=40 THEN '40 correct' ELSE 'Should be 10*2=20'END; |
[3].[代码] 多重表达式 跳至 [1] [2] [3] [4]
|
1
2
3
4
5
|
SELECT CASE 10*2 WHEN 20 THEN '20 correct' WHEN 30 THEN '30 correct' WHEN 40 THEN '40 correct'END; |
[4].[代码] 在SELECT查询中使用CASE WHEN 跳至 [1] [2] [3] [4]
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
/*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 PolicyFROM DVDsORDER BY Name; |
mysql case when 条件过滤的更多相关文章
- mysql case....when条件
oracle的写法SELECT decode(ttype,1,’a',2,’b',3,’c',’d') FROM taba 可以在mysql里写成SELECT if(ttype=1, 'a',if(t ...
- Mysql中的条件语句if、case
Mysql中的条件语句在我们对数据进行转换的时候比较有用,这样就不需要创建中转表. IF 函数 IF(expr1,expr2,expr3) 如果 expr1 是TRUE (expr1 <> ...
- mysql多条件过滤查询之mysq高级查询
一.什么是高级查询: ① 多条件的过滤查询 简单说,即拼接sql语句,在sql查询语句之后使用: where 条件1 and/or 条件2 and/or 条件3 - ② 分页查询 二.多条件过滤查询: ...
- Mysql命令-以NULL做where条件过滤时应该写 IS NULL;
以NULL做where条件过滤时应该写 IS NULL;SELECT * FROM pet WHERE death IS NULL; SELECT * FROM pet WHERE death IS ...
- 【MySQL】MySQL中where条件的执行分析
1.问题描述 一条SQL,在数据库中是如何执行的呢?相信很多人都会对这个问题比较感兴趣.当然,要完整描述一条SQL在数据库中的生命周期,这是一个非常巨大的问题,涵盖了SQL的词法解析.语法解析.权限检 ...
- MySQL · 性能优化 · 条件下推到物化表
MySQL · 性能优化 · 条件下推到物化表 http://mysql.taobao.org/monthly/2016/07/08/ 背景 MySQL引入了Materialization(物化)这一 ...
- MySQL查询where条件的顺序对查询效率的影响<转>
看到有资料说,where条件的顺序会影响查询的效率,根据的逻辑是: where条件的运行是从右到左的,将选择性强的条件放到最右边,可以先过滤掉大部分的数据(而选择性不强的条件过滤后的结果集仍然很大), ...
- MySQL查询where条件的顺序对查询效率的影响
看到有资料说,where条件的顺序会影响查询的效率,根据的逻辑是: where条件的运行是从右到左的,将选择性强的条件放到最右边,可以先过滤掉大部分的数据(而选择性不强的条件过滤后的结果集仍然很大), ...
- MySQL的简单条件判断语句
在MySQL中条件判断语句常用于数据转换,基于现有数据创建新的数据列,使用场景还是比较多. 基础样式: CASE WHEN`条件`THEN`结果` ELSE`默认结果` END 在同一条判断语句中可以 ...
随机推荐
- 纯CSS3带动画效果导航菜单
随着互联网的发展,网页能表现的东西越来越多.由最开始单纯的文字和链接构成的网页,到后来的表格布局,再到div+css模式,现在发展到了html+css3.网页能表达的东西越来越多,css3兴起已经很多 ...
- Java [Leetcode 110]Balanced Binary Tree
题目描述: Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced b ...
- plsql developer 使用技巧
plsql developer 使用技巧 Oracle数据库相信已成为很多企业构建自身关键业务的重要后台支撑,也是众多开发人员常常采用的后台.但Oracle自己提供的一套客户端工具不是很好用,极大的影 ...
- 【转】APUE习题4.6---测试lseek作用
原文网址:http://m.blog.csdn.net/blog/u014488381/42556509 原题:如果使用追加标志打开一个文件以便读.写,能否仍用 lseek 在任一为止开始读?能否用 ...
- Oracle 手工清除回滚段的几种方法
关于回滚段的问题,之前也小整理过一个,参考: Current online Redo 和 Undo 损坏的处理方法 http://blog.csdn.net/tianlesoftware/articl ...
- Oracle权限一览表
权限 所能实现的操作 分析 ANALYZE ANY 分析数据库中的任何表.簇或索引 审计 AUDIT ANY 审计数据库中的任何模式对象 AUDIT SYSTEM 启用与停用语句和特权的审计选项 ...
- java 使用相对路径读取文件
java 使用相对路径读取文件 1.java project环境,使用java.io用相对路径读取文件的例子: *目录结构: DecisionTree |___src ...
- delphi7 开发布局
delphi7界面布局(就是各种框框,代码管理器之类的东东)好了的,为什么以打开个新项目或者下次进入开发界面是环境的布局全部变了,如何才能锁定窗口布局? 在菜单栏最右边,有一个按钮save curre ...
- linux命令——rm
rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除.对于链接文件,只是删除了链接,原有文件均保持不变. rm是一个危险的命令,使用的 ...
- 《Python CookBook2》 第四章 Python技巧 对象拷贝 && 通过列表推导构建列表
(先学第四章) 对象拷贝 任务: Python通常只是使用指向原对象的引用,并不是真正的拷贝. 解决方案: >>> a = [1,2,3] >>> import c ...