sql - 如何在 SAP HANA Scalar User Defined Functions (UDF) 中编写 SQL 语句?
问题描述
我正在 SAP HANA 中编写 UDF(用户定义函数)。我想在外面的另一个 SQL 语句中使用这个函数。
例子:
我想写一个像
func_get_age (in_employee_id)
该函数将 in_employee_id 作为输入参数。在 UDF 内部,它在表上执行特定 in_employee_id 的查找并返回年龄。因此,一条 SQL 进入了 UDF。就像是
SELECT AGE FROM EMPLOYEE WHERE EMPLOYEE_ID = in_employee_id
现在这个 Age 需要作为输出返回,然后由另一个 SQL 使用。就像是
SELECT func_get_age(11234) from dummy;
我的问题是
是否可以在 SAP HANA 的 UDF 中编写 SQL?我再次希望 UDF 返回单个值而不是表。我不是在寻找表函数。
解决方案
是的,这在当前的 HANA 版本中是完全可能的。
例如:
create or replace function multi (in mult int)
returns multi_count int
as
begin
declare cnt integer;
select count(*) into cnt
from objects;
multi_count := :cnt * :mult;
end;
此函数获取所有可见对象的数量并将其与输入参数值相乘。此操作的结果分配给 RETURN 参数multi_count
。
select multi (3) from dummy;
推荐阅读
- python - 如何按不同条件合并列
- javascript - 意外输出js计算数组的最小/最大子集
- javascript - Salesforce - SharePoint 文件上传 400 错误请求错误
- python - datagen.flow_from_directory 函数
- java - 如何以加密格式保存火花数据集?
- c# - 输出列表项/对象时如何在列表项/对象前面添加增加的数字?
- azure - Azure 服务总线队列性能
- c# - 如何使用 HttpTest (flurl) 模拟更长的响应时间(不是超时)
- ios - 使用 SwiftUI 显示多个叠加层
- python - 如何从python中的嵌套列表中获取元素的位置