本文为您提供数据分析支持的CAST、DECODE、LEAST、ARRAY、SIZE、NVL等函数的命令格式、参数说明及示例。
函数 | 功能 |
将表达式的结果转换成目标类型。 | |
返回列表中第一个非NULL的值。 | |
返回一个随机ID。 | |
根据表达式的计算结果,灵活地返回不同的值。 | |
判断指定的条件是否为真。 |
CAST
命令格式
cast(<expr> as <type>)
命令说明
将expr的结果转换成目标数据类型,用法如下:
cast(double as bigint)
:将DOUBLE数据类型值转换成BIGINT数据类型。cast(string as bigint)
:在将字符串转为BIGINT数据类型时,如果字符串中是以整型表达的数字,则会直接将它们转为BIGINT类型。如果字符串中是以浮点数或指数形式表达的数字,则会先转为DOUBLE数据类型,再转为BIGINT数据类型。cast(string as datetime)
或cast(datetime as string)
:会采用默认的日期格式yyyy-mm-dd hh:mi:ss
。
参数说明
expr:必填。表达式,待转换数据来源。
type:必填。目标数据类型。
返回值说明
返回值为转换后的目标数据类型。
示例
示例1:常见用法。
--返回1。 cast('1' as bigint);
示例2:异常用法,如果转换不成功或遇到不支持的类型转换,则会返回NULL。
--返回NULL。 cast('abc' as bigint);
COALESCE
命令格式
coalesce(<expr1>, <expr2>, ...)
命令说明
返回
<expr1>, <expr2>, ...
中第一个非NULL的值,如果列表中所有的值都是NULL,则返回NULL。参数说明
expr:必填。待验证的值。所有值类型必须相同或为NULL,不一致的数据类型会返回报错。至少要有一个参数非NULL,否则会返回报错。
返回值说明
返回值类型和参数类型相同。
示例
示例1:常见用法。
--返回1。 coalesce(null,null,1,null,3,5,7);
示例2:参数值类型不一致,返回报错。
--返回报错,无法识别abc。 coalesce(null,null,1,null,abc,5,7);
示例3:参数值无非NULL值,返回报错。
--返回报错,至少有一个参数值非NULL。 coalesce(null,null,null,null);
UUID
命令格式
string uuid()
命令说明
返回一个随机ID,格式为
29347a88-1e57-41ae-bb68-a9edbdd9****
。说明UUID返回的是一个随机的全局ID,其重复的概率很小。
CASE WHEN表达式
命令格式
提供以下两种
case when
格式:case <value> when <value1> then <result1> when <value2> then <result2> ... else <resultn> end
case when (<_condition1>) then <result1> when (<_condition2>) then <result2> when (<_condition3>) then <result3> ... else <resultn> end
命令说明
根据value或_condition的计算结果,灵活地返回不同的result值。
参数说明
value:必填。比较的值。
_condition:必填。指定条件。
result:必填。返回值。
说明如果result类型只有BIGINT、DOUBLE,统一转为DOUBLE后,再返回。
如果result类型中有STRING类型,则统一转为STRING后,再返回。如果无法进行类型转换,例如BOOLEAN类型无法转换为STRING类型,则会返回报错。
不允许其它类型之间的转换。
示例
根据
shop_name
的不同情况得出所属区域。case when shop_name is null then 'default_region' when shop_name like 'hang%' then 'zj_region' end as region from sale_detail;
IF表达式
命令格式
if(<testCondition>, <valueTrue>, <valueFalseOrNull>)
命令说明
判断testCondition是否为真。如果为真,返回valueTrue的值,否则返回valueFalseOrNull的值。
参数说明
testCondition:必填。要判断的表达式,BOOLEAN类型。
valueTrue:必填。表达式testCondition为True时,返回的值。
valueFalseOrNull:表达式testCondition为False时,返回的值,可以设为NULL。
返回值说明
返回值类型和参数valueTrue或valueFalseOrNull的类型一致。
示例
--返回200。 if(1=2,100,200);