HANA数据库字符串截取

在做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后面的数据库表)

 

 

 

 

 

 

 

 

      

posted on 2021-02-19 10:54  拾万个为什么  阅读(2313)  评论(0编辑  收藏  举报