问个Function的问题.

konma 2009-06-24 12:31:50
我要写个Function
以前我只用Function来定义某些值,
如:if Trim(A) in ('101)
then set Function='B'

如果我要在Function里设公式,
如:Final_Date-First_Date
该如何写呢?请问在哪有这样的语法介绍?谢谢.
...全文
25 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2009-06-24
  • 打赏
  • 举报
回复

http://dev.mysql.com/doc/refman/5.1/zh/stored-procedures.html#stored-procedure-syntax

20.2. 存储程序的语法
20.2.1. CREATE PROCEDURE和CREATE FUNCTION

20.2.2. ALTER PROCEDURE和ALTER FUNCTION

存储程序和函数是用CREATE PROCEDURE和CREATE FUNCTION语句创建的子程序。一个子程序要么是一个程序要么是一个函数。使用CALL语句来调用程序,程序只能用输出变量传回值。就像别其它函数调用一样,函数可以被从语句外调用(即通过引用函数名),函数能返回标量值。存储子程序也可以调用其它存储子程序。


mysql> delimiter //

mysql> CREATE FUNCTION hello (s CHAR(20)) RETURNS CHAR(50)
-> RETURN CONCAT('Hello, ',s,'!');
-> //
Query OK, 0 rows affected (0.00 sec)

mysql> delimiter ;

mysql> SELECT hello('world');
+----------------+
| hello('world') |
+----------------+
| Hello, world! |
+----------------+
1 row in set (0.00 sec)
如果在存储函数中的RETURN语句返回一个类型不同于在函数的RETURNS子句中指定类型的值,返回值被强制为恰当的类型。比如,如果一个函数返回一个ENUM或SET值,但是RETURN语句返回一个整数,对于SET成员集的相应的ENUM成员,从函数返回的值是字符串。





v轻扬v 2009-06-24
  • 打赏
  • 举报
回复
你说的是mysql内部定义一个公式函数吗?

#定义一个立方差的函数
Delimiter //
Creaete function cube_diff(para1 float,para2 float) returns float #注意是returns而不是return指明返回数据的类型。括弧的参数无须指明in、out关键字,因为它们都是in类型,即输入参数。
Return para1*para1*para1-para2*para2*para2;
//
Delimiter ;
select cube_diff(3,2);

输出结果即是19

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧