select concat('a','b','c') ;
'abc'
连接参数的函数,返回结果为连接参数的字符串。如果有一个参数为NULL,则返回的结果为NULL。
select concat('a',null,'c');
null
多列合并成一列
select trade_id,concat(opt_type,'#',gmt_created) as opt_info from ods_all_o2o_order;
trade_id opt_info
13345 'seller_accepted#2022-01-01 20:57:33'
12378 'order_created#2022-01-23 10:23:01'
select trade_id,collect_set(opt_info) as info_set from test2 group by trade_id;
trade_id info_set
13345 ['seller_accepted#2022-01-01 20:57:33','order_created#2021-12-27 20:32:34']
12378 ['order_created#2022-01-23 10:23:01']
separator为参数指定分隔符,分隔符不能为null,如果设置为null,则返回结果为null
concat_ws() 函数 1、一次性指定分隔符,多列(多个字段)合并成一列(合并成一个字段)
2、将列表转换为由指定分隔符分隔的字符串
select concat_ws('*','aili','123','youyou');
'aili*123*youyou'
select concat_ws(',',['seller1','seller2','seller3','seller4','seller5']);
'seller1,seller2,seller3,seller4,seller5'
str_to_map(字符串参数, 分隔符1, 分隔符2)
使用两个分隔符将文本拆分为键值对。
分隔符1将文本分成K-V对,分隔符2分割每个K-V对。对于分隔符1默认分隔符是 ',',对于分隔符2默认分隔符是 '='。
select str_to_map('seller_accepted#2022-01-01,order_created#2021-12-31',',','#');
{"seller_acceped":"2022-01-01","order_created":"2021-12-31"}
空值转换函数
nvl格式的函数如下:
nvl(expr1, expr2)
备注:
1、如果expr1为NULL,返回值为 expr2,否则返回expr1。
2、适用于数字型、字符型和日期型,但是 expr1和expr2的数据类型必须为同类型。