我要写个Function
以前我只用Function来定义某些值,
如:if Trim(A) in ('101)
   then set Function='B'如果我要在Function里设公式,
如:Final_Date-First_Date
该如何写呢?请问在哪有这样的语法介绍?谢谢.

解决方案 »

  1.   

    你说的是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
      

  2.   

    http://dev.mysql.com/doc/refman/5.1/zh/stored-procedures.html#stored-procedure-syntax20.2. 存储程序的语法
    20.2.1. CREATE PROCEDURE和CREATE FUNCTION20.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成员,从函数返回的值是字符串。