SQL/MySQL/Flow Control/IF

Материал из SQL эксперт
Перейти к: навигация, поиск

Use IF in select clause

   <source lang="sql">

/* 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;

      </source>