sql - 如何在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"
解决方案
您可以尝试使用REPLACE_REGEXPR
我对 Hana 不熟悉,但功能非常简单,应该是:
select REPLACE_REGEXPR('.+/(.+)' IN fieldName WITH '\1' OCCURRENCE ALL) as field
...
where
... -- your filter
请注意,此正则表达式'.+/(.+)'
将吃掉所有内容,直到最后一个/
,例如,如果您拥有....checks/MasterData_Holdings/Something
它,它将仅返回Something
推荐阅读
- php - PayPal Webhook 不发送 POST 数据
- vb.net - vb.net NAudio.dll - 未定义类型“AudioFileReader”
- java - Android:如何判断月份是否早于一天
- java - 如何将方法参数中的值存储到数组中?
- hadoop - Apache Flink:可用任务槽 0
- slack - 无法通过 Slack API 成功上传文件
- python - 为什么要使用详细标志来运行特定的单元测试?
- docker - 多个域的 certbot webroot 仅返回一个证书
- python - 不同分辨率的两个时间序列之间的最大差异
- excel - 如何在 Excel 中每两位数字后添加一个逗号和空格,然后格式化文本?