使用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) |
19 | mysql> SELECT name AS Name, |
21 | -> WHEN "Holiday" THEN "Seasonal"//把sales表字段category中Holiday值替换为seasonal |
22 | -> WHEN "Profession" THEN "Bi_annual" |
23 | -> WHEN "Literary" THEN "Random" END AS "Pattern"//查询的结果命名为一个新的字段为pattern |
25 | +------------+-----------+ |
27 | +------------+-----------+ |
30 | | JavaScript | Random | |
37 | +------------+-----------+ |
38 | 9 rows in set (0.00 sec) |
45 | num MEDIUMINT NOT NULL AUTO_INCREMENT, |
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'); |
71 | WHEN "Holiday" THEN "Seasonal" |
72 | WHEN "Profession" THEN "Bi_annual" |
73 | WHEN "Literary" THEN "Random" END AS "Pattern" |
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;