<?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%2FProcedure_Function%2FFunction_Returning</id>
		<title>SQL/MySQL/Procedure Function/Function Returning - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.sqle.ru/index.php?action=history&amp;feed=atom&amp;title=SQL%2FMySQL%2FProcedure_Function%2FFunction_Returning"/>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=SQL/MySQL/Procedure_Function/Function_Returning&amp;action=history"/>
		<updated>2026-05-23T22:13:21Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.sqle.ru/index.php?title=SQL/MySQL/Procedure_Function/Function_Returning&amp;diff=5360&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/Procedure_Function/Function_Returning&amp;diff=5360&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/Procedure_Function/Function_Returning&amp;diff=5361&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=SQL/MySQL/Procedure_Function/Function_Returning&amp;diff=5361&amp;oldid=prev"/>
				<updated>2010-05-26T10:17:05Z</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;==Check function parameter and return 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;&lt;br /&gt;
mysql&amp;gt; delimiter $$&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; CREATE FUNCTION myFunction(in_status CHAR(1))&lt;br /&gt;
    -&amp;gt;      RETURNS VARCHAR(20)&lt;br /&gt;
    -&amp;gt; BEGIN&lt;br /&gt;
    -&amp;gt;      IF in_status = &amp;quot;O&amp;quot; THEN&lt;br /&gt;
    -&amp;gt;           RETURN(&amp;quot;Overdue&amp;quot;);&lt;br /&gt;
    -&amp;gt;      ELSEIF in_status = &amp;quot;U&amp;quot; THEN&lt;br /&gt;
    -&amp;gt;           RETURN(&amp;quot;Up to date&amp;quot;);&lt;br /&gt;
    -&amp;gt;      ELSEIF in_status = &amp;quot;N&amp;quot; THEN&lt;br /&gt;
    -&amp;gt;           RETURN(&amp;quot;New&amp;quot;);&lt;br /&gt;
    -&amp;gt;      END IF;&lt;br /&gt;
    -&amp;gt; END$$&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; delimiter ;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; select myFunction(&amp;quot;O&amp;quot;);&lt;br /&gt;
+-----------------+&lt;br /&gt;
| myFunction(&amp;quot;O&amp;quot;) |&lt;br /&gt;
+-----------------+&lt;br /&gt;
| Overdue         |&lt;br /&gt;
+-----------------+&lt;br /&gt;
1 row in set (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; select myFunction(&amp;quot;U&amp;quot;);&lt;br /&gt;
+-----------------+&lt;br /&gt;
| myFunction(&amp;quot;U&amp;quot;) |&lt;br /&gt;
+-----------------+&lt;br /&gt;
| Up to date      |&lt;br /&gt;
+-----------------+&lt;br /&gt;
1 row in set (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; select myFunction(&amp;quot;N&amp;quot;);&lt;br /&gt;
+-----------------+&lt;br /&gt;
| myFunction(&amp;quot;N&amp;quot;) |&lt;br /&gt;
+-----------------+&lt;br /&gt;
| New             |&lt;br /&gt;
+-----------------+&lt;br /&gt;
1 row in set (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; drop function myFunction;&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
        &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Returning Decimal from the function==&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;&lt;br /&gt;
mysql&amp;gt; DELIMITER //&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; CREATE FUNCTION myFunction (rush_ship INT(10)) RETURNS DECIMAL(10,2)&lt;br /&gt;
    -&amp;gt; BEGIN&lt;br /&gt;
    -&amp;gt;&lt;br /&gt;
    -&amp;gt; DECLARE rush_shipping_cost DECIMAL(10,2);&lt;br /&gt;
    -&amp;gt;&lt;br /&gt;
    -&amp;gt; CASE rush_ship&lt;br /&gt;
    -&amp;gt; WHEN 1 THEN&lt;br /&gt;
    -&amp;gt;         SET rush_shipping_cost = 20.00;&lt;br /&gt;
    -&amp;gt; WHEN 2 THEN&lt;br /&gt;
    -&amp;gt;         SET rush_shipping_cost = 15.00;&lt;br /&gt;
    -&amp;gt; WHEN 3 THEN&lt;br /&gt;
    -&amp;gt;         SET rush_shipping_cost = 10.00;&lt;br /&gt;
    -&amp;gt; ELSE&lt;br /&gt;
    -&amp;gt;         SET rush_shipping_cost = 0.00;&lt;br /&gt;
    -&amp;gt; END CASE;&lt;br /&gt;
    -&amp;gt;&lt;br /&gt;
    -&amp;gt; RETURN rush_shipping_cost;&lt;br /&gt;
    -&amp;gt;&lt;br /&gt;
    -&amp;gt; END&lt;br /&gt;
    -&amp;gt; //&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt; DELIMITER ;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; select myFunction(1);&lt;br /&gt;
+---------------+&lt;br /&gt;
| myFunction(1) |&lt;br /&gt;
+---------------+&lt;br /&gt;
|         20.00 |&lt;br /&gt;
+---------------+&lt;br /&gt;
1 row in set (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; drop function myFunction;&lt;br /&gt;
Query OK, 0 rows affected (0.02 sec)&lt;br /&gt;
        &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Return integer value from a function==&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;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; CREATE TABLE Employee(&lt;br /&gt;
    -&amp;gt;     id            int,&lt;br /&gt;
    -&amp;gt;     first_name    VARCHAR(15),&lt;br /&gt;
    -&amp;gt;     last_name     VARCHAR(15),&lt;br /&gt;
    -&amp;gt;     start_date    DATE,&lt;br /&gt;
    -&amp;gt;     end_date      DATE,&lt;br /&gt;
    -&amp;gt;     salary        FLOAT(8,2),&lt;br /&gt;
    -&amp;gt;     city          VARCHAR(10),&lt;br /&gt;
    -&amp;gt;     description   VARCHAR(15)&lt;br /&gt;
    -&amp;gt; );&lt;br /&gt;
Query OK, 0 rows affected (0.01 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;              values (1,&amp;quot;Jason&amp;quot;,    &amp;quot;Martin&amp;quot;,  &amp;quot;19960725&amp;quot;,  &amp;quot;20060725&amp;quot;, 1234.56, &amp;quot;Toronto&amp;quot;,  &amp;quot;Programmer&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(2,&amp;quot;Alison&amp;quot;,   &amp;quot;Mathews&amp;quot;,  &amp;quot;19760321&amp;quot;, &amp;quot;19860221&amp;quot;, 6661.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Tester&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(3,&amp;quot;James&amp;quot;,    &amp;quot;Smith&amp;quot;,    &amp;quot;19781212&amp;quot;, &amp;quot;19900315&amp;quot;, 6544.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Tester&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(4,&amp;quot;Celia&amp;quot;,    &amp;quot;Rice&amp;quot;,     &amp;quot;19821024&amp;quot;, &amp;quot;19990421&amp;quot;, 2344.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Manager&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(5,&amp;quot;Robert&amp;quot;,   &amp;quot;Black&amp;quot;,    &amp;quot;19840115&amp;quot;, &amp;quot;19980808&amp;quot;, 2334.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Tester&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(6,&amp;quot;Linda&amp;quot;,    &amp;quot;Green&amp;quot;,    &amp;quot;19870730&amp;quot;, &amp;quot;19960104&amp;quot;, 4322.78,&amp;quot;New York&amp;quot;,  &amp;quot;Tester&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.02 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(7,&amp;quot;David&amp;quot;,    &amp;quot;Larry&amp;quot;,    &amp;quot;19901231&amp;quot;, &amp;quot;19980212&amp;quot;, 7897.78,&amp;quot;New York&amp;quot;,  &amp;quot;Manager&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(8,&amp;quot;James&amp;quot;,    &amp;quot;Cat&amp;quot;,     &amp;quot;19960917&amp;quot;,  &amp;quot;20020415&amp;quot;, 1232.78,&amp;quot;Vancouver&amp;quot;, &amp;quot;Tester&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; select * from Employee;&lt;br /&gt;
+------+------------+-----------+------------+------------+---------+-----------+-------------+&lt;br /&gt;
| id   | first_name | last_name | start_date | end_date   | salary  | city      | description |&lt;br /&gt;
+------+------------+-----------+------------+------------+---------+-----------+-------------+&lt;br /&gt;
|    1 | Jason      | Martin    | 1996-07-25 | 2006-07-25 | 1234.56 | Toronto   | Programmer  |&lt;br /&gt;
|    2 | Alison     | Mathews   | 1976-03-21 | 1986-02-21 | 6661.78 | Vancouver | Tester      |&lt;br /&gt;
|    3 | James      | Smith     | 1978-12-12 | 1990-03-15 | 6544.78 | Vancouver | Tester      |&lt;br /&gt;
|    4 | Celia      | Rice      | 1982-10-24 | 1999-04-21 | 2344.78 | Vancouver | Manager     |&lt;br /&gt;
|    5 | Robert     | Black     | 1984-01-15 | 1998-08-08 | 2334.78 | Vancouver | Tester      |&lt;br /&gt;
|    6 | Linda      | Green     | 1987-07-30 | 1996-01-04 | 4322.78 | New York  | Tester      |&lt;br /&gt;
|    7 | David      | Larry     | 1990-12-31 | 1998-02-12 | 7897.78 | New York  | Manager     |&lt;br /&gt;
|    8 | James      | Cat       | 1996-09-17 | 2002-04-15 | 1232.78 | Vancouver | Tester      |&lt;br /&gt;
+------+------------+-----------+------------+------------+---------+-----------+-------------+&lt;br /&gt;
8 rows in set (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; delimiter $$&lt;br /&gt;
mysql&amp;gt; CREATE FUNCTION myFunction (in_dob datetime) returns int&lt;br /&gt;
    -&amp;gt; NO SQL&lt;br /&gt;
    -&amp;gt; BEGIN&lt;br /&gt;
    -&amp;gt;   DECLARE l_age INT;&lt;br /&gt;
    -&amp;gt;   IF DATE_FORMAT(NOW(),&amp;quot;00-%m-%d&amp;quot;) &amp;gt;= DATE_FORMAT(in_dob,&amp;quot;00-%m-%d&amp;quot;) THEN&lt;br /&gt;
    -&amp;gt;      SET l_age=DATE_FORMAT(NOW(),&amp;quot;%Y&amp;quot;)-DATE_FORMAT(in_dob,&amp;quot;%Y&amp;quot;);&lt;br /&gt;
    -&amp;gt;   ELSE&lt;br /&gt;
    -&amp;gt;      SET l_age=DATE_FORMAT(NOW(),&amp;quot;%Y&amp;quot;)-DATE_FORMAT(in_dob,&amp;quot;%Y&amp;quot;)-1;&lt;br /&gt;
    -&amp;gt;   END IF;&lt;br /&gt;
    -&amp;gt;   RETURN(l_age);&lt;br /&gt;
    -&amp;gt;&lt;br /&gt;
    -&amp;gt; END$$&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt; delimiter ;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; select myFunction(start_date) from employee;&lt;br /&gt;
+------------------------+&lt;br /&gt;
| myFunction(start_date) |&lt;br /&gt;
+------------------------+&lt;br /&gt;
|                     10 |&lt;br /&gt;
|                     31 |&lt;br /&gt;
|                     28 |&lt;br /&gt;
|                     24 |&lt;br /&gt;
|                     23 |&lt;br /&gt;
|                     19 |&lt;br /&gt;
|                     16 |&lt;br /&gt;
|                     10 |&lt;br /&gt;
+------------------------+&lt;br /&gt;
8 rows in set (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; drop function myFunction;&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; drop table Employee;&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
        &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Return NUMERIC(8,2) from a function==&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;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; delimiter $$&lt;br /&gt;
mysql&amp;gt; CREATE FUNCTION myFunction(normal_price NUMERIC(8,2))&lt;br /&gt;
    -&amp;gt; RETURNS NUMERIC(8,2)&lt;br /&gt;
    -&amp;gt; BEGIN&lt;br /&gt;
    -&amp;gt;&lt;br /&gt;
    -&amp;gt;     DECLARE discount_price NUMERIC(8,2);&lt;br /&gt;
    -&amp;gt;&lt;br /&gt;
    -&amp;gt;     IF (normal_price&amp;gt;500) THEN&lt;br /&gt;
    -&amp;gt;        SET discount_price=normal_price*.8;&lt;br /&gt;
    -&amp;gt;     ELSEIF (normal_price&amp;gt;100) THEN&lt;br /&gt;
    -&amp;gt;        SET discount_price=normal_price*.9;&lt;br /&gt;
    -&amp;gt;     ELSE&lt;br /&gt;
    -&amp;gt;        SET discount_price=normal_price;&lt;br /&gt;
    -&amp;gt;     END IF;&lt;br /&gt;
    -&amp;gt;     RETURN(discount_price);&lt;br /&gt;
    -&amp;gt; END$$&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt; delimiter ;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; select myFunction(123.123);&lt;br /&gt;
+---------------------+&lt;br /&gt;
| myFunction(123.123) |&lt;br /&gt;
+---------------------+&lt;br /&gt;
|              110.81 |&lt;br /&gt;
+---------------------+&lt;br /&gt;
1 row in set, 2 warnings (0.02 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; drop function myFunction;&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
        &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Return value from a function==&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;&lt;br /&gt;
mysql&amp;gt; delimiter $$&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; CREATE FUNCTION myFunction(&lt;br /&gt;
    -&amp;gt;         in_title VARCHAR(4),&lt;br /&gt;
    -&amp;gt;         in_gender CHAR(1),&lt;br /&gt;
    -&amp;gt;         in_firstname     VARCHAR(20),&lt;br /&gt;
    -&amp;gt;         in_middle_initial CHAR(1),&lt;br /&gt;
    -&amp;gt;         in_surname       VARCHAR(20))&lt;br /&gt;
    -&amp;gt;&lt;br /&gt;
    -&amp;gt;   RETURNS VARCHAR(60)&lt;br /&gt;
    -&amp;gt; BEGIN&lt;br /&gt;
    -&amp;gt;   DECLARE l_title               VARCHAR(4);&lt;br /&gt;
    -&amp;gt;   DECLARE l_name_string         VARCHAR(60);&lt;br /&gt;
    -&amp;gt;&lt;br /&gt;
    -&amp;gt;   IF ISNULL(in_title)  THEN&lt;br /&gt;
    -&amp;gt;      IF in_gender=&amp;quot;M&amp;quot; THEN&lt;br /&gt;
    -&amp;gt;         SET l_title=&amp;quot;Mr&amp;quot;;&lt;br /&gt;
    -&amp;gt;      ELSE&lt;br /&gt;
    -&amp;gt;         SET l_title=&amp;quot;Ms&amp;quot;;&lt;br /&gt;
    -&amp;gt;      END IF;&lt;br /&gt;
    -&amp;gt;   END IF;&lt;br /&gt;
    -&amp;gt;&lt;br /&gt;
    -&amp;gt;   IF ISNULL(in_middle_initial) THEN&lt;br /&gt;
    -&amp;gt;      SET l_name_string=CONCAT(l_title,&amp;quot; &amp;quot;,in_firstname,&amp;quot; &amp;quot;,in_surname);&lt;br /&gt;
    -&amp;gt;   ELSE&lt;br /&gt;
    -&amp;gt;      SET l_name_string=CONCAT(l_title,&amp;quot; &amp;quot;,in_firstname,&amp;quot; &amp;quot;,&lt;br /&gt;
    -&amp;gt;                           in_middle_initial,&amp;quot; &amp;quot;,in_surname);&lt;br /&gt;
    -&amp;gt;   END IF;&lt;br /&gt;
    -&amp;gt;&lt;br /&gt;
    -&amp;gt;   RETURN(l_name_string);&lt;br /&gt;
    -&amp;gt; END$$&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; delimiter ;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; select myFunction(&amp;quot;Mrs&amp;quot;,&amp;quot;M&amp;quot;,&amp;quot;First&amp;quot;,&amp;quot;Middle&amp;quot;,&amp;quot;Last&amp;quot;);&lt;br /&gt;
+-----------------------------------------------+&lt;br /&gt;
| myFunction(&amp;quot;Mrs&amp;quot;,&amp;quot;M&amp;quot;,&amp;quot;First&amp;quot;,&amp;quot;Middle&amp;quot;,&amp;quot;Last&amp;quot;) |&lt;br /&gt;
+-----------------------------------------------+&lt;br /&gt;
| NULL                                          |&lt;br /&gt;
+-----------------------------------------------+&lt;br /&gt;
1 row in set, 1 warning (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; select myFunction(null,&amp;quot;M&amp;quot;,&amp;quot;First&amp;quot;,&amp;quot;Middle&amp;quot;,&amp;quot;Last&amp;quot;);&lt;br /&gt;
+----------------------------------------------+&lt;br /&gt;
| myFunction(null,&amp;quot;M&amp;quot;,&amp;quot;First&amp;quot;,&amp;quot;Middle&amp;quot;,&amp;quot;Last&amp;quot;) |&lt;br /&gt;
+----------------------------------------------+&lt;br /&gt;
| Mr First M Last                              |&lt;br /&gt;
+----------------------------------------------+&lt;br /&gt;
1 row in set, 1 warning (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; drop function myFunction;&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
        &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Using the returning value from a user-defined function in order by clause==&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;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; CREATE TABLE Employee(&lt;br /&gt;
    -&amp;gt;     id            int,&lt;br /&gt;
    -&amp;gt;     first_name    VARCHAR(15),&lt;br /&gt;
    -&amp;gt;     last_name     VARCHAR(15),&lt;br /&gt;
    -&amp;gt;     start_date    DATE,&lt;br /&gt;
    -&amp;gt;     end_date      DATE,&lt;br /&gt;
    -&amp;gt;     salary        FLOAT(8,2),&lt;br /&gt;
    -&amp;gt;     city          VARCHAR(10),&lt;br /&gt;
    -&amp;gt;     description   VARCHAR(15)&lt;br /&gt;
    -&amp;gt; );&lt;br /&gt;
Query OK, 0 rows affected (0.02 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;              values (1,&amp;quot;Jason&amp;quot;,    &amp;quot;Martin&amp;quot;,  &amp;quot;19960725&amp;quot;,  &amp;quot;20060725&amp;quot;, 1234.56, &amp;quot;Toronto&amp;quot;,  &amp;quot;Programmer&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(2,&amp;quot;Alison&amp;quot;,   &amp;quot;Mathews&amp;quot;,  &amp;quot;19760321&amp;quot;, &amp;quot;19860221&amp;quot;, 6661.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Tester&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(3,&amp;quot;James&amp;quot;,    &amp;quot;Smith&amp;quot;,    &amp;quot;19781212&amp;quot;, &amp;quot;19900315&amp;quot;, 6544.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Tester&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(4,&amp;quot;Celia&amp;quot;,    &amp;quot;Rice&amp;quot;,     &amp;quot;19821024&amp;quot;, &amp;quot;19990421&amp;quot;, 2344.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Manager&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(5,&amp;quot;Robert&amp;quot;,   &amp;quot;Black&amp;quot;,    &amp;quot;19840115&amp;quot;, &amp;quot;19980808&amp;quot;, 2334.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Tester&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(6,&amp;quot;Linda&amp;quot;,    &amp;quot;Green&amp;quot;,    &amp;quot;19870730&amp;quot;, &amp;quot;19960104&amp;quot;, 4322.78,&amp;quot;New York&amp;quot;,  &amp;quot;Tester&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(7,&amp;quot;David&amp;quot;,    &amp;quot;Larry&amp;quot;,    &amp;quot;19901231&amp;quot;, &amp;quot;19980212&amp;quot;, 7897.78,&amp;quot;New York&amp;quot;,  &amp;quot;Manager&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(8,&amp;quot;James&amp;quot;,    &amp;quot;Cat&amp;quot;,     &amp;quot;19960917&amp;quot;,  &amp;quot;20020415&amp;quot;, 1232.78,&amp;quot;Vancouver&amp;quot;, &amp;quot;Tester&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; select * from Employee;&lt;br /&gt;
+------+------------+-----------+------------+------------+---------+-----------+-------------+&lt;br /&gt;
| id   | first_name | last_name | start_date | end_date   | salary  | city      | description |&lt;br /&gt;
+------+------------+-----------+------------+------------+---------+-----------+-------------+&lt;br /&gt;
|    1 | Jason      | Martin    | 1996-07-25 | 2006-07-25 | 1234.56 | Toronto   | Programmer  |&lt;br /&gt;
|    2 | Alison     | Mathews   | 1976-03-21 | 1986-02-21 | 6661.78 | Vancouver | Tester      |&lt;br /&gt;
|    3 | James      | Smith     | 1978-12-12 | 1990-03-15 | 6544.78 | Vancouver | Tester      |&lt;br /&gt;
|    4 | Celia      | Rice      | 1982-10-24 | 1999-04-21 | 2344.78 | Vancouver | Manager     |&lt;br /&gt;
|    5 | Robert     | Black     | 1984-01-15 | 1998-08-08 | 2334.78 | Vancouver | Tester      |&lt;br /&gt;
|    6 | Linda      | Green     | 1987-07-30 | 1996-01-04 | 4322.78 | New York  | Tester      |&lt;br /&gt;
|    7 | David      | Larry     | 1990-12-31 | 1998-02-12 | 7897.78 | New York  | Manager     |&lt;br /&gt;
|    8 | James      | Cat       | 1996-09-17 | 2002-04-15 | 1232.78 | Vancouver | Tester      |&lt;br /&gt;
+------+------------+-----------+------------+------------+---------+-----------+-------------+&lt;br /&gt;
8 rows in set (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; delimiter $$&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; CREATE FUNCTION myFunction(in_rep_id INT)&lt;br /&gt;
    -&amp;gt;      RETURNS INT&lt;br /&gt;
    -&amp;gt;      READS SQL DATA&lt;br /&gt;
    -&amp;gt; BEGIN&lt;br /&gt;
    -&amp;gt;      DECLARE customer_count INT;&lt;br /&gt;
    -&amp;gt;&lt;br /&gt;
    -&amp;gt;      SELECT COUNT(*)&lt;br /&gt;
    -&amp;gt;           INTO customer_count&lt;br /&gt;
    -&amp;gt;        FROM employee&lt;br /&gt;
    -&amp;gt;       WHERE id=in_rep_id;&lt;br /&gt;
    -&amp;gt;&lt;br /&gt;
    -&amp;gt;      RETURN(customer_count);&lt;br /&gt;
    -&amp;gt;&lt;br /&gt;
    -&amp;gt; END$$&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; delimiter ;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; SELECT id,myFunction(id)&lt;br /&gt;
    -&amp;gt;   FROM employee&lt;br /&gt;
    -&amp;gt;  WHERE myFunction(id)&amp;gt;0&lt;br /&gt;
    -&amp;gt;  ORDER BY myFunction(id) desc;&lt;br /&gt;
+------+----------------+&lt;br /&gt;
| id   | myFunction(id) |&lt;br /&gt;
+------+----------------+&lt;br /&gt;
|    1 |              1 |&lt;br /&gt;
|    2 |              1 |&lt;br /&gt;
|    3 |              1 |&lt;br /&gt;
|    4 |              1 |&lt;br /&gt;
|    5 |              1 |&lt;br /&gt;
|    6 |              1 |&lt;br /&gt;
|    7 |              1 |&lt;br /&gt;
|    8 |              1 |&lt;br /&gt;
+------+----------------+&lt;br /&gt;
8 rows in set (0.02 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; drop function myFunction;&lt;br /&gt;
Query OK, 0 rows affected (0.01 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; drop table Employee;&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
        &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>