分隔符前后字段截取
Tips:
mysql的3种字段截取;
1、`SUBSTR(s, start, length)从字符串 s 的 start 位置截取长度为 length 的子字符串从字符串 RUNOOB 中的第 2 个位置截取 3个 字符:`SELECT SUBSTR("RUNOOB", 2, 3) AS ExtractString; -- UNO
2、`SUBSTRING(s, start, length)从字符串 s 的 start 位置截取长度为 length 的子字符串从字符串 RUNOOB 中的第 2 个位置截取 3个 字符:
`SELECT SUBSTRING("RUNOOB", 2, 3) AS ExtractString; -- UNO
3、`SUBSTRING_INDEX(s, delimiter, number)返回从字符串 s 的第 number 个出现的分隔符 delimiter 之后的子串。 如果 number 是正数,返回第 number 个字符左边的字符串。 如果 number 是负数,返回第(number 的绝对值(从右边数))个字符右边的字符串。
SELECT SUBSTRING_INDEX('a*b','*',1) -- a
SELECT SUBSTRING_INDEX('a*b','*',-1) -- b
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('a*b*c*d*e','*',3),'*',-1) -- c`
hive使用split截取;
# cell-key:12345_678
split(cellkey,'_')[0],split(cellkey,'_')[1] -- 12345,678