SQL/MySQL/Flow Control/IF
Версия от 13:46, 26 мая 2010; (обсуждение)
Use IF in select clause
/*
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, category AS Category,
-> IF(winter>500, "Sells", "Slow") AS Trend
-> FROM sales;
+------------+------------+-------+
| Name | Category | Trend |
+------------+------------+-------+
| Java | Holiday | Sells |
| C | Profession | Sells |
| JavaScript | Literary | Slow |
| SQL | Profession | Sells |
| Oracle | Holiday | Sells |
| MySQL | Literary | Sells |
| Cplus | Literary | Sells |
| Python | Holiday | Slow |
| PHP | Profession | Sells |
+------------+------------+-------+
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, category AS Category,
IF(winter>500, "Sells", "Slow") AS Trend
FROM sales;