美文网首页
SQL中的自定义函数

SQL中的自定义函数

作者: 小橙子_43db | 来源:发表于2019-12-09 23:12 被阅读0次

在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;

相关文章

  • (4)SparkSQL中如何定义UDF和使用UDF

    Spark SQL中用户自定义函数,用法和Spark SQL中的内置函数类似;是saprk SQL中内置函数无法满...

  • Flink自定义函数实现

    鉴于自定义函数函数在SQL中的强大语义,在SQL中有十分广泛的应用。Flink在其Table/SQL API中同样...

  • 自定义函数

    概述: 创建不带参数的自定义函数: 创建带参数的自定义函数: 创建具有复合结构函数体的自定义函数: sql命令结束...

  • MySql 自定义函数遇到的一些问题解决

    MySql用户自定义函数中的SQL语句不允许返回结果集。 比如函数中有一句: SELECT max(pos) AS...

  • SQL中的自定义函数

    在SQL中我们我们经常会用到count(),avg(),sum()等这些函数,这些是SQL中自带的函数,当系统中的...

  • 0.SQL编程之目录

    SQL编程之前言为什么我选择分享SQL编程SQL编程的基础概念 SQL编程之MySQL 自定义函数 Hello w...

  • flink modules详解之使用hive函数

    modules概念 通过hive module使用hive函数内置函数自定义函数 sql 客户端的使用 原理分析和...

  • 自定义函数和存储过程

    创建自定义函数 函数体(routine_body) 函数体由合法的SQL语句构成。 函数体可以是简单的SELECT...

  • hive积累大全

    此篇内容:hive自定义函数UDF、UDTF,压缩存储方式,hive优化、hive实际编程SQL中的if表达式用法...

  • spark知识点

    1、自定义函数UDF import org.apache.spark.sql.functions._ val my...

网友评论

      本文标题:SQL中的自定义函数

      本文链接:https://www.haomeiwen.com/subject/jiobgctx.html