SQL中的自定义函数

在SQL中我们我们经常会用到count(),avg(),sum()等这些函数,这些是SQL中自带的函数,当系统中的自带函数不能满足我们的需要时,我们可以自定义函数来完成我们的功能。

自定义函数是一种与存储过程十分相似的过程式数据库对象。它与存储过程一样,都是由 SQL 语句和过程式语句组成的代码片段,并且可以被应用程序和其他 SQL 语句调用。

自定义函数与存储过程的区别:

1.输出参数:自定义函数不能拥有输出参数,因为其本身就是输出参数;而存储过程可以包含输出参数。

2.RETURN语句,自定义函数必须有一条RETURN语句;存储过程不能有RETURN语句

3.可以直接在SQL语句中调用自定义函数;存储过程需要使用call来调用。

创建

create function 函数名([参数列表]) returns 数据类型

begin

    sql语句;

    return 值;

end;

示例:

create function fundemo(num INT) returns int

BEGIN

RETURN num+666;

END;

-- 调用函数

SELECT fundemo(0);

输出:666

再来一个demo:定义一个判断网站浏览量等级的函数,<100为C,100到1000为B,大于1000为A

DROP FUNCTION IF EXISTS rankABC; -- 存在函数时将函数删除

create function rankABC(num INT) returns VARCHAR(10)

BEGIN

DECLARE rank varchar(10); -- declare关键字定义变量

IF num<=100 THEN

set rank = 'C'; -- set关键字用来给变量赋值

ELSEIF (num>100 and num<1000) THEN

set rank = 'B';

ELSE

set rank = 'A';

  END IF;

return rank;

END

-- 调用函数

SELECT *,rankABC(alexa) from websites;

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容