大数据分析——Apache Doris(五十五)

262 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第9天,点击查看活动详情

 get_json_string(VARCHAR json_str, VARCHAR json_path)

解析并获取 json 字符串内指定路径的字符串内容。 其中 json_path 必须以 $ 符号作为开头,使用 . 作为路径分割符。如果路径中包含 . ,则可以使用双引号包围。 使用 [ ] 表示数组下标,从 0 开始。 path 的内容不能包含 ", [ 和 ]。 如果 json_string 格式不对,或 json_path 格式不对,或无法找到匹配项,则返回 NULL

获取 key 为 "k1" 的 value
SELECT get_json_string ( '{"k1":"v1", "k2":"v2"}' ,  "$.k1" );
获取 key 为 "my.key" 的数组中第二个元素
SELECT get_json_string ( '{"k1":"v1", "my.key":["e1", "e2", "e3"]}' ,  '$."my.key"[1]' );
获取二级路径为 k1.key -> k2 的数组中,第一个元素
SELECT get_json_string ( '{"k1.key":{"k2":["v1", "v2"]}}' ,  '$."k1.key".k2[0]' );
获取数组中,key 为 "k1" 的所有 value
SELECT get_json_string ( '[{"k1":"v1"}, {"k2":"v2"}, {"k1":"v3"}, {"k1":"v4"}]' ,  '$.k1' );
 group_concat(VARCHAR str[, VARCHAR sep])

该函数是类似于 sum() 的聚合函数,group_concat 将结果集中的多行结果连接成一个字符串。第二个参数 sep 为字符串之间的连接符号,该参数可以省略。该函数通常需要和 group by 语句一起使用。

select value from test **;**select group_concat ( value )  from test **;**select group_concat ( value ,  " " )  from test ;
 instr(VARCHAR str, VARCHAR substr)

返回 substr 在 str 中第一次出现的位置(从1开始计数)。如果 substr 不在 str 中出现,则返回0。

select instr ( "abc" ,  "b" );****
select instr ( "abc" ,  "d" );
 lcase(VARCHAR str)

与lower一致

 left(VARCHAR str)

它返回具有指定长度的字符串的左边部分, 长度的单位为utf8字符

select left ( "Hello doris" , 5 );****
 length(VARCHAR str)

返回字符串的字节。

select length ( "abc" );****
select length ( "中国" );
 locate(VARCHAR substr, VARCHAR str[, INT pos])

返回 substr 在 str 中出现的位置(从1开始计数)。如果指定第3个参数 pos,则从 str 以 pos 下标开始的字符串处开始查找 substr 出现的位置。如果没有找到,返回0

SELECT LOCATE ( 'bar' ,  'foobarbar' );****
SELECT LOCATE ( 'xbar' ,  'foobar' );
SELECT LOCATE ( 'bar' ,  'foobarbar' ,  5 );
 lower(VARCHAR str)

将参数中所有的字符串都转换成小写

SELECT lower ( "AbC123" );****
 lpad(VARCHAR str, INT len, VARCHAR pad)

返回 str 中长度为 len(从首字母开始算起)的字符串。如果 len 大于 str 的长度,则在 str 的前面不断补充 pad 字符,直到该字符串的长度达到 len 为止。如果 len 小于 str 的长度,该函数相当于截断 str 字符串,只返回长度为 len 的字符串。len 指的是字符长度而不是字节长度。

SELECT lpad ( "hi" ,  5 ,  "xy" );****
SELECT lpad ( "hi" ,  1 ,  "xy" );