在SAP HANA数据库中提取字符串逗号间指定内容的方法
提取字符串中指定位置的子串解决方案
方法一:嵌套使用字符串截取函数
利用SUBSTR_AFTER获取第一个逗号后的全部内容,再用SUBSTR_BEFORE截取第二个逗号之前的部分:
SELECT SUBSTR_BEFORE(SUBSTR_AFTER('ItemBO:M101,1000129A,A', ','), ',') AS target_value FROM DUMMY;
方法二:使用正则表达式匹配
通过REGEXP_SUBSTR直接匹配两个逗号之间的内容,正则表达式,([^,]+),会捕获逗号间的非逗号字符,最后指定取第一个捕获组:
SELECT REGEXP_SUBSTR('ItemBO:M101,1000129A,A', ',([^,]+),', 1, 1, 'i', 1) AS target_value FROM DUMMY;
补充说明
你之前使用SUBSTR_AFTER仅截取了第一个逗号后的所有内容,因此会包含后续的,A,通过嵌套截取或正则匹配可以精准提取目标子串。
内容的提问来源于stack exchange,提问作者charj
相关产品推荐
相关产品推荐

