<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.sqle.ru/index.php?action=history&amp;feed=atom&amp;title=SQL%2FMySQL%2FFlow_Control%2FCASE_WHEN_Select</id>
		<title>SQL/MySQL/Flow Control/CASE WHEN Select - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.sqle.ru/index.php?action=history&amp;feed=atom&amp;title=SQL%2FMySQL%2FFlow_Control%2FCASE_WHEN_Select"/>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=SQL/MySQL/Flow_Control/CASE_WHEN_Select&amp;action=history"/>
		<updated>2026-05-24T08:52:32Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.sqle.ru/index.php?title=SQL/MySQL/Flow_Control/CASE_WHEN_Select&amp;diff=5088&amp;oldid=prev</id>
		<title> в 13:46, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=SQL/MySQL/Flow_Control/CASE_WHEN_Select&amp;diff=5088&amp;oldid=prev"/>
				<updated>2010-05-26T13:46:00Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 13:46, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.sqle.ru/index.php?title=SQL/MySQL/Flow_Control/CASE_WHEN_Select&amp;diff=5089&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=SQL/MySQL/Flow_Control/CASE_WHEN_Select&amp;diff=5089&amp;oldid=prev"/>
				<updated>2010-05-26T10:16:00Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==CASE WHEN with calculation==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SELECT CASE 10*2&lt;br /&gt;
   WHEN 20 THEN &amp;quot;20 correct&amp;quot;&lt;br /&gt;
   WHEN 30 THEN &amp;quot;30 correct&amp;quot;&lt;br /&gt;
   WHEN 40 THEN &amp;quot;40 correct&amp;quot;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Simple CASE WHEN command==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SELECT CASE WHEN 10*2=30 THEN &amp;quot;30 correct&amp;quot;&lt;br /&gt;
   WHEN 10*2=40 THEN &amp;quot;40 correct&amp;quot;&lt;br /&gt;
   ELSE &amp;quot;Should be 10*2=20&amp;quot;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use case when==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
mysql&amp;gt;   SELECT CASE WHEN 9&amp;gt;7&lt;br /&gt;
    -&amp;gt;                  THEN &amp;quot;TRUE&amp;quot;&lt;br /&gt;
    -&amp;gt;                  ELSE&lt;br /&gt;
    -&amp;gt;                  &amp;quot;FALSE&amp;quot;&lt;br /&gt;
    -&amp;gt;                  END&lt;br /&gt;
    -&amp;gt;   AS &amp;quot;Results&amp;quot;;&lt;br /&gt;
+---------+&lt;br /&gt;
| Results |&lt;br /&gt;
+---------+&lt;br /&gt;
| TRUE    |&lt;br /&gt;
+---------+&lt;br /&gt;
1 row in set (0.00 sec)&lt;br /&gt;
&lt;br /&gt;
*/&lt;br /&gt;
  SELECT CASE WHEN 9&amp;gt;7 &lt;br /&gt;
                 THEN &amp;quot;TRUE&amp;quot; &lt;br /&gt;
                 ELSE &lt;br /&gt;
                 &amp;quot;FALSE&amp;quot; &lt;br /&gt;
                 END &lt;br /&gt;
  AS &amp;quot;Results&amp;quot;;&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use CASE WHEN for string value==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
mysql&amp;gt; select * from sales;&lt;br /&gt;
+-----+------------+--------+--------+--------+------+------------+&lt;br /&gt;
| num | name       | winter | spring | summer | fall | category   |&lt;br /&gt;
+-----+------------+--------+--------+--------+------+------------+&lt;br /&gt;
|   1 | Java       |   1067 |    200 |    150 |  267 | Holiday    |&lt;br /&gt;
|   2 | C          |    970 |    770 |    531 |  486 | Profession |&lt;br /&gt;
|   3 | JavaScript |     53 |     13 |     21 |  856 | Literary   |&lt;br /&gt;
|   4 | SQL        |    782 |    357 |    168 |  250 | Profession |&lt;br /&gt;
|   5 | Oracle     |    589 |    795 |    367 |  284 | Holiday    |&lt;br /&gt;
|   6 | MySQL      |    953 |    582 |    336 |  489 | Literary   |&lt;br /&gt;
|   7 | Cplus      |    752 |    657 |    259 |  478 | Literary   |&lt;br /&gt;
|   8 | Python     |     67 |     23 |     83 |  543 | Holiday    |&lt;br /&gt;
|   9 | PHP        |    673 |     48 |    625 |   52 | Profession |&lt;br /&gt;
+-----+------------+--------+--------+--------+------+------------+&lt;br /&gt;
9 rows in set (0.01 sec)&lt;br /&gt;
mysql&amp;gt; SELECT name AS Name,&lt;br /&gt;
    -&amp;gt; CASE category&lt;br /&gt;
    -&amp;gt; WHEN &amp;quot;Holiday&amp;quot; THEN &amp;quot;Seasonal&amp;quot;&lt;br /&gt;
    -&amp;gt; WHEN &amp;quot;Profession&amp;quot; THEN &amp;quot;Bi_annual&amp;quot;&lt;br /&gt;
    -&amp;gt; WHEN &amp;quot;Literary&amp;quot; THEN &amp;quot;Random&amp;quot; END AS &amp;quot;Pattern&amp;quot;&lt;br /&gt;
    -&amp;gt; FROM sales;&lt;br /&gt;
+------------+-----------+&lt;br /&gt;
| Name       | Pattern   |&lt;br /&gt;
+------------+-----------+&lt;br /&gt;
| Java       | Seasonal  |&lt;br /&gt;
| C          | Bi_annual |&lt;br /&gt;
| JavaScript | Random    |&lt;br /&gt;
| SQL        | Bi_annual |&lt;br /&gt;
| Oracle     | Seasonal  |&lt;br /&gt;
| MySQL      | Random    |&lt;br /&gt;
| Cplus      | Random    |&lt;br /&gt;
| Python     | Seasonal  |&lt;br /&gt;
| PHP        | Bi_annual |&lt;br /&gt;
+------------+-----------+&lt;br /&gt;
9 rows in set (0.00 sec)&lt;br /&gt;
&lt;br /&gt;
*/&lt;br /&gt;
Drop table sales;&lt;br /&gt;
  &lt;br /&gt;
CREATE TABLE sales(&lt;br /&gt;
    num MEDIUMINT NOT NULL AUTO_INCREMENT,&lt;br /&gt;
    name CHAR(20),&lt;br /&gt;
    winter INT,&lt;br /&gt;
    spring INT,&lt;br /&gt;
    summer INT,&lt;br /&gt;
    fall INT,&lt;br /&gt;
    category CHAR(13),&lt;br /&gt;
    primary key(num)&lt;br /&gt;
)type=MyISAM;&lt;br /&gt;
&lt;br /&gt;
insert into sales value(1, &amp;quot;Java&amp;quot;, 1067 , 200, 150, 267,&amp;quot;Holiday&amp;quot;);&lt;br /&gt;
insert into sales value(2, &amp;quot;C&amp;quot;,970,770,531,486,&amp;quot;Profession&amp;quot;);&lt;br /&gt;
insert into sales value(3, &amp;quot;JavaScript&amp;quot;,53,13,21,856,&amp;quot;Literary&amp;quot;);&lt;br /&gt;
insert into sales value(4, &amp;quot;SQL&amp;quot;,782,357,168,250,&amp;quot;Profession&amp;quot;);&lt;br /&gt;
insert into sales value(5, &amp;quot;Oracle&amp;quot;,589,795,367,284,&amp;quot;Holiday&amp;quot;);&lt;br /&gt;
insert into sales value(6, &amp;quot;MySQL&amp;quot;,953,582,336,489,&amp;quot;Literary&amp;quot;);&lt;br /&gt;
insert into sales value(7, &amp;quot;Cplus&amp;quot;,752,657,259,478,&amp;quot;Literary&amp;quot;);&lt;br /&gt;
insert into sales value(8, &amp;quot;Python&amp;quot;,67,23,83,543,&amp;quot;Holiday&amp;quot;);&lt;br /&gt;
insert into sales value(9, &amp;quot;PHP&amp;quot;,673,48,625,52,&amp;quot;Profession&amp;quot;);&lt;br /&gt;
select * from sales;&lt;br /&gt;
&lt;br /&gt;
SELECT name AS Name,&lt;br /&gt;
CASE category&lt;br /&gt;
WHEN &amp;quot;Holiday&amp;quot; THEN &amp;quot;Seasonal&amp;quot;&lt;br /&gt;
WHEN &amp;quot;Profession&amp;quot; THEN &amp;quot;Bi_annual&amp;quot;&lt;br /&gt;
WHEN &amp;quot;Literary&amp;quot; THEN &amp;quot;Random&amp;quot; END AS &amp;quot;Pattern&amp;quot;&lt;br /&gt;
FROM sales;&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use CASE WHEN statement in SELECT==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
mysql&amp;gt; SELECT Name, RatingID AS Rating,&lt;br /&gt;
    -&amp;gt;    CASE RatingID&lt;br /&gt;
    -&amp;gt;       WHEN &amp;quot;R&amp;quot; THEN &amp;quot;Under 17 requires an adult.&amp;quot;&lt;br /&gt;
    -&amp;gt;       WHEN &amp;quot;X&amp;quot; THEN &amp;quot;No one 17 and under.&amp;quot;&lt;br /&gt;
    -&amp;gt;       WHEN &amp;quot;NR&amp;quot; THEN &amp;quot;Use discretion when renting.&amp;quot;&lt;br /&gt;
    -&amp;gt;       ELSE &amp;quot;OK to rent to minors.&amp;quot;&lt;br /&gt;
    -&amp;gt;    END AS Policy&lt;br /&gt;
    -&amp;gt; FROM DVDs&lt;br /&gt;
    -&amp;gt; ORDER BY Name;&lt;br /&gt;
+-----------+--------+------------------------------+&lt;br /&gt;
| Name      | Rating | Policy                       |&lt;br /&gt;
+-----------+--------+------------------------------+&lt;br /&gt;
| Africa    | PG     | OK to rent to minors.        |&lt;br /&gt;
| Amadeus   | PG     | OK to rent to minors.        |&lt;br /&gt;
| Christmas | NR     | Use discretion when renting. |&lt;br /&gt;
| Doc       | G      | OK to rent to minors.        |&lt;br /&gt;
| Falcon    | NR     | Use discretion when renting. |&lt;br /&gt;
| Mash      | R      | Under 17 requires an adult.  |&lt;br /&gt;
| Show      | NR     | Use discretion when renting. |&lt;br /&gt;
| View      | NR     | Use discretion when renting. |&lt;br /&gt;
+-----------+--------+------------------------------+&lt;br /&gt;
8 rows in set (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
*/&lt;br /&gt;
Drop table DVDs;&lt;br /&gt;
CREATE TABLE DVDs (&lt;br /&gt;
   ID SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,&lt;br /&gt;
   Name VARCHAR(60) NOT NULL,&lt;br /&gt;
   NumDisks TINYINT NOT NULL DEFAULT 1,&lt;br /&gt;
   RatingID VARCHAR(4) NOT NULL,&lt;br /&gt;
   StatID CHAR(3) NOT NULL&lt;br /&gt;
)&lt;br /&gt;
ENGINE=INNODB;&lt;br /&gt;
INSERT INTO DVDs (Name, NumDisks, RatingID, StatID)&lt;br /&gt;
VALUES (&amp;quot;Christmas&amp;quot;, 1, &amp;quot;NR&amp;quot;, &amp;quot;s1&amp;quot;),&lt;br /&gt;
       (&amp;quot;Doc&amp;quot;,       1, &amp;quot;G&amp;quot;,  &amp;quot;s2&amp;quot;),&lt;br /&gt;
       (&amp;quot;Africa&amp;quot;,    1, &amp;quot;PG&amp;quot;, &amp;quot;s1&amp;quot;),&lt;br /&gt;
       (&amp;quot;Falcon&amp;quot;,    1, &amp;quot;NR&amp;quot;, &amp;quot;s2&amp;quot;),&lt;br /&gt;
       (&amp;quot;Amadeus&amp;quot;,   1, &amp;quot;PG&amp;quot;, &amp;quot;s2&amp;quot;),&lt;br /&gt;
       (&amp;quot;Show&amp;quot;,      2, &amp;quot;NR&amp;quot;, &amp;quot;s2&amp;quot;),&lt;br /&gt;
       (&amp;quot;View&amp;quot;,      1, &amp;quot;NR&amp;quot;, &amp;quot;s1&amp;quot;),&lt;br /&gt;
       (&amp;quot;Mash&amp;quot;,      2, &amp;quot;R&amp;quot;,  &amp;quot;s2&amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
SELECT Name, RatingID AS Rating,&lt;br /&gt;
   CASE RatingID&lt;br /&gt;
      WHEN &amp;quot;R&amp;quot; THEN &amp;quot;Under 17 requires an adult.&amp;quot;&lt;br /&gt;
      WHEN &amp;quot;X&amp;quot; THEN &amp;quot;No one 17 and under.&amp;quot;&lt;br /&gt;
      WHEN &amp;quot;NR&amp;quot; THEN &amp;quot;Use discretion when renting.&amp;quot;&lt;br /&gt;
      ELSE &amp;quot;OK to rent to minors.&amp;quot;&lt;br /&gt;
   END AS Policy&lt;br /&gt;
FROM DVDs&lt;br /&gt;
ORDER BY Name;&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use CASE WHEN statement in SELECT 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
mysql&amp;gt; SELECT Name, RatingID AS Rating,&lt;br /&gt;
    -&amp;gt;    CASE&lt;br /&gt;
    -&amp;gt;       WHEN RatingID=&amp;quot;R&amp;quot; THEN &amp;quot;Under 17 requires an adult.&amp;quot;&lt;br /&gt;
    -&amp;gt;       WHEN RatingID=&amp;quot;X&amp;quot; THEN &amp;quot;No one 17 and under.&amp;quot;&lt;br /&gt;
    -&amp;gt;       WHEN RatingID=&amp;quot;NR&amp;quot; THEN &amp;quot;Use discretion when renting.&amp;quot;&lt;br /&gt;
    -&amp;gt;       ELSE &amp;quot;OK to rent to minors.&amp;quot;&lt;br /&gt;
    -&amp;gt;    END AS Policy&lt;br /&gt;
    -&amp;gt; FROM DVDs&lt;br /&gt;
    -&amp;gt; ORDER BY Name;&lt;br /&gt;
+-----------+--------+------------------------------+&lt;br /&gt;
| Name      | Rating | Policy                       |&lt;br /&gt;
+-----------+--------+------------------------------+&lt;br /&gt;
| Africa    | PG     | OK to rent to minors.        |&lt;br /&gt;
| Amadeus   | PG     | OK to rent to minors.        |&lt;br /&gt;
| Christmas | NR     | Use discretion when renting. |&lt;br /&gt;
| Doc       | G      | OK to rent to minors.        |&lt;br /&gt;
| Falcon    | NR     | Use discretion when renting. |&lt;br /&gt;
| Mash      | R      | Under 17 requires an adult.  |&lt;br /&gt;
| Show      | NR     | Use discretion when renting. |&lt;br /&gt;
| View      | NR     | Use discretion when renting. |&lt;br /&gt;
+-----------+--------+------------------------------+&lt;br /&gt;
8 rows in set (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
*/&lt;br /&gt;
Drop table DVDs;&lt;br /&gt;
CREATE TABLE DVDs (&lt;br /&gt;
   ID SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,&lt;br /&gt;
   Name VARCHAR(60) NOT NULL,&lt;br /&gt;
   NumDisks TINYINT NOT NULL DEFAULT 1,&lt;br /&gt;
   RatingID VARCHAR(4) NOT NULL,&lt;br /&gt;
   StatID CHAR(3) NOT NULL&lt;br /&gt;
)&lt;br /&gt;
ENGINE=INNODB;&lt;br /&gt;
INSERT INTO DVDs (Name, NumDisks, RatingID, StatID)&lt;br /&gt;
VALUES (&amp;quot;Christmas&amp;quot;, 1, &amp;quot;NR&amp;quot;, &amp;quot;s1&amp;quot;),&lt;br /&gt;
       (&amp;quot;Doc&amp;quot;,       1, &amp;quot;G&amp;quot;,  &amp;quot;s2&amp;quot;),&lt;br /&gt;
       (&amp;quot;Africa&amp;quot;,    1, &amp;quot;PG&amp;quot;, &amp;quot;s1&amp;quot;),&lt;br /&gt;
       (&amp;quot;Falcon&amp;quot;,    1, &amp;quot;NR&amp;quot;, &amp;quot;s2&amp;quot;),&lt;br /&gt;
       (&amp;quot;Amadeus&amp;quot;,   1, &amp;quot;PG&amp;quot;, &amp;quot;s2&amp;quot;),&lt;br /&gt;
       (&amp;quot;Show&amp;quot;,      2, &amp;quot;NR&amp;quot;, &amp;quot;s2&amp;quot;),&lt;br /&gt;
       (&amp;quot;View&amp;quot;,      1, &amp;quot;NR&amp;quot;, &amp;quot;s1&amp;quot;),&lt;br /&gt;
       (&amp;quot;Mash&amp;quot;,      2, &amp;quot;R&amp;quot;,  &amp;quot;s2&amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
SELECT Name, RatingID AS Rating,&lt;br /&gt;
   CASE&lt;br /&gt;
      WHEN RatingID=&amp;quot;R&amp;quot; THEN &amp;quot;Under 17 requires an adult.&amp;quot;&lt;br /&gt;
      WHEN RatingID=&amp;quot;X&amp;quot; THEN &amp;quot;No one 17 and under.&amp;quot;&lt;br /&gt;
      WHEN RatingID=&amp;quot;NR&amp;quot; THEN &amp;quot;Use discretion when renting.&amp;quot;&lt;br /&gt;
      ELSE &amp;quot;OK to rent to minors.&amp;quot;&lt;br /&gt;
   END AS Policy&lt;br /&gt;
FROM DVDs&lt;br /&gt;
ORDER BY Name;&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>