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

342 阅读1分钟

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

 concat(VARCHAR,...)

将多个字符串连接起来, 如果参数中任意一个值是 NULL,那么返回的结果就是 NULL

select concat ( "a" ,  "b" **);**select concat ( "a" ,  "b" ,  "c" );select concat ( "a" ,  null ,  "c" );
 concat_ws(VARCHAR sep, VARCHAR str,...)

使用第一个参数 sep 作为连接符,将第二个参数以及后续所有参数拼接成一个字符串. 如果分隔符是 NULL,返回 NULL。 concat_ws函数不会跳过空字符串,会跳过 NULL 值

select concat_ws ( "or" ,  "d" ,  "is" **);**select concat_ws ( NULL ,  "d" ,  "is" );select concat_ws ( "or" ,  "d" ,  NULL , "is" );
 ENDS_WITH (VARCHAR str, VARCHAR suffix)

如果字符串以指定后缀结尾,返回true。否则,返回false。任意参数为NULL,返回NULL。

select ends_with ( "Hello doris" ,  "doris" **);**select ends_with ( "Hello doris" ,  "Hello" );
 find_in_set(VARCHAR str, VARCHAR strlist)

返回 strlist 中第一次出现 str 的位置(从1开始计数)。strlist 是用逗号分隔的字符串。如果没有找到,返回0。任意参数为 NULL ,返回 NULL。

select find_in_set ( "b" ,  "a,b,c" );****
 get_json_double(VARCHAR json_str, VARCHAR json_path)

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

获取 key 为 "k1" 的 value
SELECT get_json_double ( '{"k1":1.3, "k2":"2"}' ,  "$.k1" );****
获取 key 为 "my.key" 的数组中第二个元素
SELECT get_json_double ( '{"k1":"v1", "my.key":[1.1, 2.2, 3.3]}' ,  '$."my.key"[1]' );
获取二级路径为 k1.key -> k2 的数组中,第一个元素
SELECT get_json_double ( '{"k1.key":{"k2":[1.1, 2.2]}}' ,  '$."k1.key".k2[0]' );
 get_json_int(VARCHAR json_str, VARCHAR json_path)

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

获取 key 为 "k1" 的 value
SELECT get_json_int ( '{"k1":1, "k2":"2"}' ,  "$.k1" );
获取 key 为 "my.key" 的数组中第二个元素
SELECT get_json_int ( '{"k1":"v1", "my.key":[1, 2, 3]}' ,  '$."my.key"[1]' );
获取二级路径为 k1.key -> k2 的数组中,第一个元素
SELECT get_json_int ( '{"k1.key":{"k2":[1, 2]}}' ,  '$."k1.key".k2[0]' );