您的位置:首页 > 其它

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

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

01
/*
02
mysql>
SELECT
Name
,RatingID
AS
Rating,
03
->
CASE
RatingID
04
->
WHEN
'R'
THEN
'Under 17 requires an adult.'
05
->
WHEN
'X'
THEN
'No one 17 and under.'
06
->
WHEN
'NR'
THEN
'Use discretion when renting.'
07
->
ELSE
'OK to rentto minors.'
08
->
END
AS
Policy
09
->
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
26
*/
27
28
Drop
table
DVDs;
29
30
CREATE
TABLE
DVDs (
31
 
ID
SMALLINT
NOT
NULL
AUTO_INCREMENT
PRIMARY
KEY
,
32
 
Name
VARCHAR
(60)
NOT
NULL
,
33
 
NumDisks TINYINT
NOT
NULL
DEFAULT
1,
34
 
RatingID
VARCHAR
(4)
NOT
NULL
,
35
 
StatID
CHAR
(3)
NOT
NULL
36
)
37
ENGINE=INNODB;
38
39
INSERT
INTO
DVDs (
Name
,NumDisks,RatingID,StatID)
40
VALUES
(
'Christmas'
,1,
'NR'
,
's1'
),
41
 
(
'Doc'
,1,
'G'
,
's2'
),
42
 
(
'Africa'
,1,
'PG'
,
's1'
),
43
 
(
'Falcon'
,1,
'NR'
,
's2'
),
44
 
(
'Amadeus'
,1,
'PG'
,
's2'
),
45
 
(
'Show'
,2,
'NR'
,
's2'
),
46
 
(
'View'
,1,
'NR'
,
's1'
),
47
 
(
'Mash'
,2,
'R'
,
's2'
);
48
 
49
50
SELECT
Name
,RatingID
AS
Rating,
51
 
CASE
RatingID
52
WHEN
'R'
THEN
'Under 17 requires an adult.'
53
WHEN
'X'
THEN
'No one 17 and under.'
54
WHEN
'NR'
THEN
'Use discretion when renting.'
55
ELSE
'OK to rentto minors.'
56
 
END
AS
Policy
57
FROM
DVDs
58
ORDER
BY
Name
;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: