在作SAP MES业务的时候,遇到了以下问题:正则表达式
HANA数据库如何截取传进来的字符串?好比,对于“C515,GT-ShiWanGerWeiShenMer,A”,第一个逗号前的字符串"C515"是站点,“GT-ShiWanGerWeiShenMer”是流水号,"A"是版本号,如今数据库须要保存该字符串的流水号,怎么截取呢?数据库
先来看一个例子:数组
SELECT SUBSTRING_REGEXPR('[^|]+' IN '1111|2222|3333|44|555' FROM 1 OCCURRENCE 4) from dummy;字符串
这一段SQL语句就是HANA截取字符串的方法,使用了正则表达式。解释下,这个正则表达式的含义就是 用数组[ ]获取,以字符串中的|字符做为截取标准截取1111|2222|3333|44|555“”,从第1个开始的第4个,就是咱们要截取的字符串,结果为“44”。(注意from后面的数据库表)方法
对于上面的问题,截取“C515,GT-ShiWanGerWeiShenMer,A”中的流水号,SQL语句就是:数据
SELECT SUBSTRING_REGEXPR('[^,]+' IN 'C515,GT-ShiWanGerWeiShenMer,A' FROM 1 OCCURRENCE 2) from dummy;字符
以逗号","做为截取标准,获取第2个字段,结果为"GT-ShiWanGerWeiShenMer",就是咱们须要的流水号。(注意from后面的数据库表)版本