暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

人大金仓KingbaseES基于SQL的函数过程

数据猿 2023-01-05
962

什么是SQL函数?

  • SQL函数包体是一些可执行的SQL语言。同时包含1条以上的查询,但是函数只返回最后一个查询(必须是SELECT)的结果。
  • 除非SQL函数声明为返回void,否则最后一条语句必须是SELECT语句。
  • 在简单情况下,返回最后一条查询结果的第一行。
  • 如果最后一个查询不返回任何行,那么该函数将返回NULL值。
  • 如果需要该函数返回最后一条SELECT语句的所有行,可以将函数的返回值定义为集合,即SETOF sometype。

语法

CREATE OR REPLACE FUNCTIONfunction_name([ [ argmode ] [ argname ] argtype [ { DEFAULT | = } default_expr ] [, ...] ])
[RETURNSrettype]
AS $$$BODY$;
$$ LANGUAGE SQL;

示例

CREATEOR REPLACE FUNCTIONadd(a number, b number)
RETURNSNUMERICAS $$
    SELECT a+b;
$$ LANGUAGESQL;

CREATEOR REPLACE FUNCTIONadd(number,number)
RETURNSNUMERICAS $$
SELECT $1+ $2;
$$ LANGUAGESQL;

CREATEOR REPLACE FUNCTION select1()
RETURNSintegerAS $$
    select quantity from pivot_t1;
$$ LANGUAGESQL;
该查询返回表的第一条记录

CREATEOR REPLACE FUNCTION select2()
RETURNS setof integerAS $$
    select quantity from pivot_t1;
$$ LANGUAGESQL;
该查询返回表的全部记录
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论