我们如何在HANA中实现结果中每一行的功能执行?

2020-08-23 21:32发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我们正在将我们的MS ...

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

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


你好


我们正在将我们的MS SQL查询迁移到B1的HANA,我们陷入了一个关键问题。 我们在MS SQL中广泛使用了内联表值函数,以便我们可以有效地重用我们的代码。 例如

创建函数[dbo]。[UDF_AddressFormat](@ Street VARCHAR(50),@ Block VARCHAR(50))
 以RETURNS表的形式返回(选择CONCAT(@Street,",",@Block)AS [地址])

我们在各种过程和其他功能中使用它的方式是:

选择T0.CardCode,T0.CardName,(从[dbo]中选择地址。[UDF_AddressFormat](T1.Street,T1.Block))AS'BillToAddressString'

 从OCRD T0内联接CRD1 T1到T0.CardCode = T1.CardCode AND T0.BillToDef = T1.Address AND T1.AdresType ='B'

这在MS SQL中效果很好。 但是我们无法在HANA中复制此功能。

我们尝试在HANA中创建表函数,但是当我们如上所述在HANA中执行最终查询时,出现错误:

功能不支持:字段或表别名不能作为表函数的输入

我什至在寻找OUTER APPLY运算符来实现这一目标,但HANA似乎也不支持。

有人可以建议前进的方向或其他功能吗? 我们在哪里出错了?

注意:我们在函数中的操作要比这复杂得多。 简单的表值函数用于演示目的,并使其更易于理解。

6条回答
木偶小白
2020-08-23 22:29

仅在from子句中不能在查询的字段列表中使用表函数 。 因此,您可以创建标量函数或针对特定情况直接使用串联运算符(" ||"),也可以使用 CONCAT 函数(例如... CONCAT(T1。" STREET",CONCAT('-',T1。" BLOCK"))...)

一周热门 更多>