如何在HANA计算列中的字符串中查找任何特殊字符

2020-08-19 08:23发布

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

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


你好

我有一个要求,如果它存在于来自HANA计算视图中计算列中某个列的字符串中,我需要在其中找到任何特殊字符。 你能让我知道代码吗?

谢谢

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

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


你好

我有一个要求,如果它存在于来自HANA计算视图中计算列中某个列的字符串中,我需要在其中找到任何特殊字符。 你能让我知道代码吗?

谢谢

付费偷看设置
发送
3条回答
haha101010
1楼-- · 2020-08-19 08:34

这里最简单的方法是使用正则表达式和预定义的字符类。

例如,这里可以使用\ w单词字符类。

通过指定 非单词字符类(通过^ \ w或\ W,请在此处),您可以轻松地编写查询以"标记"这些记录。 像这样的东西:

,dat为
 (从虚拟联合所有中选择'AB1C1'作为vendor_name
 从虚拟联合所有中选择" XY @ z"作为vendor_name
 从dummy中选择" XY_-12345z"作为vendor_name)
 选择
 供应商名称
 ,locate_regexpr
 ('[^ \ w]'IN" VENDOR_NAME"中)作为special_character_mark
 从
 t

 

" SPECIAL_CHARACTER_MARK"将是一个整数,如果在vendor_name中未找到非单词字符,则为零(0),如果存在则大于零。

现在,LOCATE_REGEXPR函数仅在SQL中可用,因此您必须在计算视图之外的SQL命令中或在语言为" SQL"的计算列中使用它。

但是,棘手的一点不是将其纳入您的代码/模型中。 通常比较棘手的是找到正确的正则表达式来标记所需的字符。例如,上述测试数据中的连字符(-)被视为非单词字符,而下划线(_)是

在这里,您必须非常小心,以为您的用例创建正确的正则表达式。

像往常一样,搜索机器是您的朋友...

---就像其他信息一样:我多年来一直在处理这种要求。 每当它弹出时,我都需要再次搜索regex语法,规则和详细信息。 这不是任何人都应该记住的事情,而且我不知道有谁这样做。 了解这种解决方案以及如何重新使用它会很有帮助。 不要以为这样的东西是凭空冒出来的,没有查找或任何搜索的印象。

半个程序猿
2楼-- · 2020-08-19 08:42

"特殊字符"对您来说到底是什么? 那些怎么进入计算列?

蓋茨
3楼-- · 2020-08-19 08:58

你好拉尔斯,

感谢您与我们联系。 我的要求实际上是确定名称(LFA1-NAME)中带有特殊字符的所有供应商编号(LFA1-LIFNR)。 特殊字符是指字母或数字以外的其他字符(即@#£&-_ + *":;!?:等)。假设一个供应商X的名称为AB1C,另一个供应商Y的名称为 XY @ z,那么我需要标记供应商Y。

我已经建立了HANA计算视图,但是找不到任何可以在字符串中定位特殊字符的字符串函数。 请让我知道如何达到此要求。

谢谢

一周热门 更多>