在作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後面的數據庫表)版本