在Hiveql中是否有类似于TSQL的
Right()
或者Left()
函数的功能呢?例如,使用RIGHT(col1,10)
从col1
中获取前10个字符。没有right
或left
函数,但你可以使用substr
实现相同的功能,例如:
left(column, nchar) = substr(column, 1* nchar)
right(column, nchar) = substr(column, (-1)* nchar)
这里的nchar
是字符数。
substr (col, -nchar) = right(col, nchar)
。hive> select substr('adbcefghij',-4);
ghij
Time taken: 40.839 seconds, Fetched: 1 row(s)
right(column, nchar) = substr(column, (length(column)-nchar+1), nchar)
(-1)*
可以改成-1
吗?这是一个打字错误吗? - user17242583SUBSTR(column, start, num_chars)
,根据这里的文档:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-StringFunctions例如,substr(column, 0, 3)
会返回字符串中前三个字符。 - silverdagger