sap - 在 CDS View 中连接空格

标签 sap hana cds

As of ABAP 7.40 SP5我可以使用 CONCAT 函数组合我的 CDS View 选择列表中的两个字段。它仅限于两个参数,但我可以通过链接此函数来组合多个字段或构建更大的字符串来解决这个问题。我不能用这种方式做的是将两个字段用空格分隔开。当我这样做时:

define view Z... 
as select from but000 as bp
{
    concat( concat( bp.name_first, ' '), bp.name_last )
}

空格 ' ' 会从生成的字符串中静默删除。 如何用空格分隔字段?

最佳答案

ABAP 7.50

ABAP 7.50 will include CONCAT_WITH_SPACE function解决了这个问题。使用该函数,上面的示例可以简单地写成:

CONCAT_WITH_SPACE( bp.name_first, bp.name_last, 1 )

1 表示要在两个参数之间插入的空格数。

7.50 also introduces other string functionsINSTRLEFTLENGTHLTRIMRIGHTRPAD RTRIM7.51 looks set to add LOWERUPPER 到该列表。


ABAP 7.40

在这个版本中没有干净的方法来完成同样的事情。唯一的方法似乎是将两个字段与一个虚拟字符串连接起来,该虚拟字符串将空格括在一个字符组中,该字符组不会出现在正在选择的字段中。合并后,您可以从结果中删除这些字符,只留下空格。我在 the SAP forums. 上采用了 Christian Seitel 的这种方法

REPLACE(CONCAT( CONCAT( bp.name_first, '|-| |-|'), bp.name_last),'|-|', '')

这是可行的,因为它将按如下方式处理此字符串:

name_first|-| |-|
name_first|-| |-|name_last
name_first name_last

关于sap - 在 CDS View 中连接空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41304608/

相关文章:

powershell - 无法使用Powershell从商店中删除证书

c# - SAP DI API : How to add payments with multiple invoice?

c# - .net Sap 连接器 3.0 连接失败

java - 如何在 Spring JPA 中使用 SQL View ?

abap - 使用 CDS 连接到另一个 SAP HANA 数据库

abap - 在 ABAP CDS View 中将 DATS 转换为字符串

android - 在 android SETUP 应用程序中使用多个用户

javascript - XSJS 获取{key :value} paired result from SQL query

java - WebSocket 数据一致性与延迟

abap - 聚合字段根据条件使用 SUM/MIN?