首页 > 解决方案 > 如何在where子句中过滤字符串

问题描述

我想使用 SAP HANA 中的 where 子句提取字符串。例如,这些是 name 列的 3 个字符串。

123._SYS_BIC.meag.app.qthor.cidwh_eingangsschicht.backend.dblayer.l2.checks/MasterData_Holdings.
153._SYS_BIC.meag.app.qthor.centralAdministration.backend.dblayer.l2.checks/AuditAndSecurities.
meag.app.qthor.centralAdministration.backend.dblayer.l2.checks/GeneralLedger

使用 where 子句过滤名称列后,名称列中的输出将仅显示字符串的最后部分。所以,输出将是这样的。这意味着无论我们拥有什么,只需从开头删除直到'/'。

"MasterData_Holdings" "AuditAndSecurities" "GeneralLedger"

标签: sqlhana

解决方案


您可以尝试使用REPLACE_REGEXPR

我对 Hana 不熟悉,但功能非常简单,应该是:

select REPLACE_REGEXPR('.+/(.+)' IN fieldName WITH '\1' OCCURRENCE ALL) as field
...
where
... -- your filter

请注意,此正则表达式'.+/(.+)'将吃掉所有内容,直到最后一个/,例如,如果您拥有....checks/MasterData_Holdings/Something它,它将仅返回Something


推荐阅读