具有动态列选择的标量值函数

2020-08-31 14:18发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我想在HANA中的标量值函数(hdbscalarfunction)中执行类似的操作,以获取关键指标相对于特定特征的平均值:

功能" JPCHURN"。" ml.jpchurn.functions :: getAveFeature"(in_clsID Integer,in_featureName nvarchar(256))
 返回ex_aveValue的两倍
 语言SQLSCRIPT
 SQL安全调用者
 开始
/*********************************
 编写函数逻辑
  ********************************/
 声明lv_String nvarchar(256);
 lv_String ='a。'  ||  :in_featureName;

  选择(:lv_String)到ex_aveValue
  来自" JPCHURN"。" ml.jpchurn.data::jpChurn.tab_DataRaw"为
  内部联接" JPCHURN"。" CustChurnAPLModelsvClust_01_resultTrain"为b
  在a。"帐户ID" = b。"帐户ID"上
  其中b.closest_cluster_1 =:in_clsID;
 

但是,实际上包含字段名称的:lv_string的动态选择不起作用。 我可以使用if-else分支作为解决方法,然后手动输入字段名称。 但是,除了这之外,只有伪动态函数,我有〜25个可以更改的字段。

有什么想法要实现吗? 此外,标量值函数中不允许使用动态SQL。

感谢+问候,Ingo

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我想在HANA中的标量值函数(hdbscalarfunction)中执行类似的操作,以获取关键指标相对于特定特征的平均值:

功能" JPCHURN"。" ml.jpchurn.functions :: getAveFeature"(in_clsID Integer,in_featureName nvarchar(256))
 返回ex_aveValue的两倍
 语言SQLSCRIPT
 SQL安全调用者
 开始
/*********************************
 编写函数逻辑
  ********************************/
 声明lv_String nvarchar(256);
 lv_String ='a。'  ||  :in_featureName;

  选择(:lv_String)到ex_aveValue
  来自" JPCHURN"。" ml.jpchurn.data::jpChurn.tab_DataRaw"为
  内部联接" JPCHURN"。" CustChurnAPLModelsvClust_01_resultTrain"为b
  在a。"帐户ID" = b。"帐户ID"上
  其中b.closest_cluster_1 =:in_clsID;
 

但是,实际上包含字段名称的:lv_string的动态选择不起作用。 我可以使用if-else分支作为解决方法,然后手动输入字段名称。 但是,除了这之外,只有伪动态函数,我有〜25个可以更改的字段。

有什么想法要实现吗? 此外,标量值函数中不允许使用动态SQL。

感谢+问候,Ingo

付费偷看设置
发送
2条回答
天桥码农
1楼-- · 2020-08-31 15:11

您可以在HANA Procedure对象中使用动态SQL。 请参考下面的链接以参考示例:

https://help.sap.com/查看器/de2486ee947e43e684d39702027f8a94/2.0.02/zh-CN/093c4fd307064f838cb582555c187b9e.html

悠然的二货
2楼-- · 2020-08-31 14:55

Hi Ingo,

在标量值函数中,不可能使用动态SQL。 您可以开发HANA过程来执行动态SQL语句。

致谢

基达尔

一周热门 更多>