在CDS视图中连接空格

时间:2016-12-23 16:11:52

标签: sap hana cds

As of ABAP 7.40 SP5我可以使用CONCAT功能合并我的CDS视图选择列表中的两个字段。它仅限于两个参数,但我可以通过链接此函数来组合多个字段或构建更大的字符串来解决这个问题。我无法做到这一点的方法是将两个字段组合在一起,并用空格分隔它们。当我这样做时:

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

从结果字符串中静默修剪空间' '如何用空格分隔字段?

2 个答案:

答案 0 :(得分:2)

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 functions,例如INSTRLEFTLENGTHLTRIMRIGHTRPADRTRIM 。 <{3}} LOWERUPPER到该列表。

ABAP 7.40

在此版本中没有干净的方法来完成相同的操作。唯一的方法似乎是将两个字段与一个虚拟字符串连接起来,该字符串包含一个字符组中的空格,该字符组不会出现在正在被选中的字段中。合并后,您可以从结果中删除这些字符,只留下空格。我在7.51 looks set to add

上采用了Christian Seitel的这种方法
REPLACE(CONCAT( CONCAT( bp.name_first, '|-| |-|'), bp.name_last),'|-|', '')

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

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

答案 1 :(得分:0)

如果您仍在尝试<7.50版本。您可以尝试:

concat(concat("first_string",(' ')), "second_string")

希望对您有帮助。