mysql__CASE WHEN進行字符串替換處理 使用CASE WHEN進行字符串替換處理
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"//把sales表字段category中Holiday值替換為seasonal
22 -> WHEN "Profession" THEN "Bi_annual"
23 -> WHEN "Literary" THEN "Random" END AS "Pattern"//查詢的結果命名為一個新的字段為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;
SELECT num,name AS Name, case category
when "Holiday" then "1111" #把categroy字段中的Holiday替換為1111
WHEN "Profession" THEN "2222" #把categroy字段中的Holiday替換為2222
WHEN "Literary" THEN "3333" #把categroy字段中的Holiday替換為3333
END AS "從新命名標題" #把categroy重新命名為'從新命名標題'
FROM sales;