DataWorks函数
文章目录
- 0、MaxCompute预置的函数分类
- 1、日期函数
- 2、数学函数
- 3、算术运算符
- 4、窗口函数
- 5、聚合函数
- 6、字符串函数
- 7、复杂类型函数
- 8、加密函数
- 9、其他函数
0、MaxCompute预置的函数分类
| 函数类型 | 说明 |
|---|---|
| 日期函数 | 支持处理DATE、DATETIME、TIMESTAMP等日期类型数据,实现加减日期、计算日期差值、提取日期字段、获取当前时间、转换日期格式等业务处理能力。 |
| 数学函数 | 支持处理BIGINT、DOUBLE、DECIMAL、FLOAT等数值类型数据,实现转换进制、数学运算、四舍五入、获取随机数等业务处理能力。 |
| 窗口函数 | 支持在指定的开窗列中,实现求和、求最大最小值、求平均值、求中间值、数值排序、数值偏移、抽样等业务处理能力。 |
| 聚合函数 | 支持将多条输入记录聚合成一条输出值,实现求和、求平均值、求最大最小值、求平均值、参数聚合、字符串连接等业务处理能力。 |
| 字符串函数 | 支持处理STRING类型字符串,实现截取字符串、替换字符串、查找字符串、转换大小写、转换字符串格式等业务处理能力。 |
| 复杂类型函数 | 支持处理MAP、ARRAY、STRUCT及JSON类型数据,实现去重元素、聚合元素、元素排序、合并元素等业务处理能力。 |
| 加密函数 | 支持处理STRING、BINARY类型的表数据,实现加密、解密等业务处理能力。 |
| 其他函数 | 除上述函数之外,提供支持其他业务场景的函数。 |
1、日期函数
MaxCompute SQL提供了如下日期函数,您可以根据实际需要选择合适的日期函数,完成日期计算、日期转换。
| 函数 | 小写 | 功能 |
|---|---|---|
| DATEADD | dateadd | 按照指定的单位和幅度修改日期值。 |
| DATE_ADD | date_add | 按照指定的幅度增减天数,与date_sub的增减逻辑相反。 |
| DATE_FORMAT | date_format | 将日期值转换为指定格式的字符串。 |
| DATE_SUB | date_sub | 按照指定的幅度增减天数,与date_add的增减逻辑相反。 |
| DATEDIFF | datediff | 计算两个日期的差值并按照指定的单位表示。 |
| DATEPART | datepart | 提取日期中符合指定时间单位的字段值。 |
| DATETRUNC | datetrunc | 提取日期按照指定时间单位截取后的值。 |
| FROM_UNIXTIME | from_unixtime | 将数字型的UNIX值转换为日期值。 |
| GETDATE | getdate | 获取当前系统时间。 |
| ISDATE | isdate | 判断一个日期字符串能否根据指定的格式串转换为一个日期值。 |
| LASTDAY | lastday | 获取日期所在月的最后一天。 |
| TO_DATE | to_date | 将指定格式的字符串转换为日期值。 |
| TO_CHAR | to_char | 将日期按照指定格式转换为字符串。 |
| UNIX_TIMESTAMP | unix_timestamp | 将日期转换为整型的UNIX格式的日期值。 |
| WEEKDAY | weekday | 返回日期值是当前周的第几天。 |
| WEEKOFYEAR | weekofyear | 返回日期值位于当年的第几周。 |
| ADD_MONTHS | add_months | 计算日期值增加指定月数后的日期。 |
| CURRENT_TIMESTAMP | current_timestamp | 返回当前TIMESTAMP类型的时间戳。 |
| CURRENT_TIMEZONE | current_timezone | 返回当前系统的时区信息。 |
| DAY | day | 返回日期值的天。 |
| DAYOFMONTH | dayofmonth | 返回日部分的值。 |
| DAYOFWEEK | dayofweek | 返回日期的星期值。 |
| DAYOFYEAR | dayofyear | 返回日期是当年中的第几天。 |
| EXTRACT | extract | 获取日期TIMESTAMP中指定单位的部分。 |
| FROM_UTC_TIMESTAMP | from_utc_timestamp | 将一个UTC时区的时间戳转换为一个指定时区的时间戳。 |
| HOUR | hour | 返回日期小时部分的值。 |
| LAST_DAY | last_day | 返回日期值所在月份的最后一天日期。 |
| MINUTE | minute | 返回日期分钟部分的值。 |
| MONTH | month | 返回日期值所属月份。 |
| MONTHS_BETWEEN | months_between | 返回指定日期值间的月数。 |
| NEXT_DAY | next_day | 返回大于日期值且与指定周相匹配的第一个日期。 |
| QUARTER | quarter | 返回日期值所属季度。 |
| SECOND | second | 返回日期秒数部分的值。 |
| TO_MILLIS | to_millis | 将指定日期转换为以毫秒为单位的UNIX时间戳。 |
| YEAR | year | 返回日期值的年。 |
2、数学函数
MaxCompute SQL提供了如下数学函数供您在开发过程中使用,您可以根据实际需要选择合适的数学函数,进行数据计算、数据转换相关操作。
| 函数 | 小写 | 功能 |
|---|---|---|
| ABS | abs | 计算绝对值。 |
| ACOS | acos | 计算反余弦值。 |
| ASIN | asin | 计算反正弦值。 |
| ATAN | atan | 计算反正切值。 |
| ATAN2 | atan2 | 计算expr1/expr2的反正切函数。 |
| CEIL | ceil | 计算向上取整值。 |
| CONV | conv | 计算进制转换值。 |
| COS | cos | 计算余弦值。 |
| COSH | cosh | 计算双曲余弦值。 |
| COT | cot | 计算余切值。 |
| EXP | exp | 计算指数值。 |
| FLOOR | floor | 计算向下取整值。 |
| ISNAN | isnan | 判断表达式的值是否是NaN。 |
| LN | ln | 计算自然对数。 |
| LOG | log | 计算log对数值。 |
| NEGATIVE | negative | 返回表达式的负值。 |
| POSITIVE | positive | 返回表达式的值。 |
| POW | pow | 计算幂值。 |
| RAND | rand | 返回随机数。 |
| ROUND | round | 返回四舍五入到指定小数点位置的值。 |
| SIN | sin | 计算正弦值。 |
| SINH | sinh | 计算双曲正弦值。 |
| SQRT | sqrt | 计算平方根。 |
| TAN | tan | 计算正切值。 |
| TANH | tanh | 计算双曲正切值。 |
| TRUNC | trunc | 返回截取到指定小数点位置的值。 |
| BIN | bin | 计算二进制代码值。 |
| CBRT | cbrt | 计算立方根值。 |
| CORR | corr | 计算皮尔逊系数。 |
| DEGREES | degrees | 将弧度转换为角度。 |
| E | e | 返回e的值。 |
| FACTORIAL | factorial | 计算阶乘值。 |
| FORMAT_NUMBER | format_number | 将数字转化为指定格式的字符串。 |
| HEX | hex | 返回整数或字符串的十六进制格式。 |
| LOG2 | log2 | 计算以2为底的对数。 |
| LOG10 | log10 | 计算以10为底的对数。 |
| PI | pi | 返回π的值。 |
| RADIANS | radians | 将角度转换为弧度。 |
| SIGN | sign | 返回输入参数的符号。 |
| SHIFTLEFT | shiftleft | 计算按位左移值。 |
| SHIFTRIGHT | shiftright | 计算按位右移值。 |
| SHIFTRIGHTUNSIGNED | shiftrightunsigned | 计算无符号按位右移值。 |
| UNHEX | unhex | 返回十六进制字符串所代表的字符串。 |
| WIDTH_BUCKET | width_bucket | 返回指定字段值落入的分组编号。 |
3、算术运算符
| 运算符 | 说明 |
|---|---|
| A+B | A或B为NULL,返回NULL,否则返回A+B的结果。 |
| A-B | A或B为NULL,返回NULL,否则返回A-B的结果。 |
| A*B | A或B为NULL,返回NULL,否则返回A×B的结果。 |
| A/B | A或B为NULL,返回NULL,否则返回A÷B的结果。说明如果A和B为BIGINT类型,返回结果为DOUBLE类型。 |
| A%B | A或B为NULL,返回NULL,否则返回A÷B并取余数的结果。 |
| +A | 仍然返回A。 |
| -A | 如果A为NULL,返回NULL,否则返回-A。 |
| A DIV B | A或B为NULL,返回NULL,否则返回A DIV B的结果。 |
4、窗口函数
MaxCompute SQL提供了如下窗口函数,使用窗口函数对指定开窗列的数据灵活地进行分析处理工作。
| 函数 | 小写 | 功能 |
|---|---|---|
| ROW_NUMBER | row_number | 计算行号。从1开始递增。 |
| RANK | rank | 计算排名。排名可能不连续。 |
| DENSE_RANK | dense_rank | 计算排名。排名是连续的。 |
| PERCENT_RANK | percent_rank | 计算排名。输出百分比格式。 |
| CUME_DIST | cume_dist | 计算累计分布。 |
| NTILE | ntile | 将数据顺序切分成N等份,返回数据所在等份的编号(从1到N)。 |
| LAG | lag | 取当前行往前(朝分区头部方向)第N行数据的值。 |
| LEAD | lead | 取当前行往后(朝分区尾部方向)第N行数据的值。 |
| FIRST_VALUE | first_value | 取当前行所对应窗口的第一条数据的值。 |
| LAST_VALUE | last_value | 取当前行所对应窗口的最后一条数据的值。 |
| NTH_VALUE | nth_value | 取当前行所对应窗口的第N条数据的值。 |
| CLUSTER_SAMPLE | cluster_sample | 用户随机抽样。返回True表示该行数据被抽中。 |
| COUNT | count | 计算窗口中的记录数。 |
| MIN | min | 计算窗口中的最小值。 |
| MAX | max | 计算窗口中的最大值。 |
| AVG | avg | 对窗口中的数据求平均值。 |
| SUM | sum | 对窗口中的数据求和。 |
| MEDIAN | median | 计算窗口中的中位数。 |
| STDDEV | stddev | 计算总体标准差。是STDDEV_POP的别名。 |
| STDDEV_SAMP | stddev_samp | 计算样本标准差。 |
5、聚合函数
MaxCompute SQL支持的聚合函数如下。
| 函数 | 小写 | 功能 |
|---|---|---|
| AVG | avg | 计算平均值。 |
| COUNT | count | 计算记录数。 |
| COUNT_IF | count_if | 计算指定表达式为True的记录数。 |
| MAX | max | 计算最大值。 |
| MIN | min | 计算最小值。 |
| MEDIAN | median | 计算中位数。 |
| STDDEV | stddev | 计算总体标准差。 |
| STDDEV_SAMP | stddev_samp | 计算样本标准差。 |
| SUM | sum | 计算汇总值。 |
| WM_CONCAT | wm_concat | 用指定的分隔符连接字符串。 |
| ANY_VALUE | any_value | 在指定范围内任选一个值返回。 |
| APPROX_DISTINCT | approx_distinct | 返回输入的非重复值的近似数目。 |
| ARG_MAX | arg_max | 返回指定列的最大值对应行的列值。 |
| ARG_MIN | arg_min | 返回指定列的最小值对应行的列值。 |
| MAX_BY | max_by | 返回指定列的最大值对应行的列值。 |
| MIN_BY | min_by | 返回指定列的最小值对应行的列值。 |
| COLLECT_LIST | collect_list | 将指定的列聚合为一个数组。 |
| COLLECT_SET | collect_set | 将指定的列聚合为一个无重复元素的数组。 |
| COVAR_POP | covar_pop | 计算指定两个数值列的总体协方差。 |
| COVAR_SAMP | covar_samp | 计算指定两个数值列的样本协方差。 |
| NUMERIC_HISTOGRAM | numeric_histogram | 统计指定列的近似直方图。 |
| PERCENTILE | percentile | 计算精确百分位数,适用于小数据量。 |
| PERCENTILE_APPROX | percentile_approx | 计算近似百分位数,适用于大数据量。 |
| VARIANCE/VAR_POP | variance/var_pop | 计算指定数值列的方差。 |
| VAR_SAMP | var_samp | 计算指定数值列的样本方差。 |
| BITWISE_OR_AGG | bitwise_or_agg | 计算输入Value的bit OR聚合值。 |
| BITWISE_AND_AGG | bitwise_and_agg | 计算输入Value的bit AND聚合值。 |
| MAP_AGG | map_agg | 构造两个输入字段的Map。 |
| MULTIMAP_AGG | multimap_agg | 构造两个输入字段的Map,第一个字段作为Map的Key,第二个字段构造数组作为Map的Value。 |
| MAP_UNION | map_union | 对输入Map进行Union操作来构造输出Map。 |
| MAP_UNION_SUM | map_union_sum | 对输入Map进行Union操作并对相同Key的Value求和来构造输出Map。 |
| HISTOGRAM | histogram | 构造输入Map的Key值出现次数的Map。 |
6、字符串函数
MaxCompute SQL支持的字符串函数如下。其中字符串函数的使用限制请参见字符串函数的使用限制。
| 函数 | 小写 | 功能 |
|---|---|---|
| ASCII | ascii | 返回字符串的第一个字符的ASCII码。 |
| CHAR_MATCHCOUNT | char_matchcount | 计算A字符串出现在B字符串中的字符个数。 |
| CHR | chr | 将指定ASCII码转换成字符。 |
| CONCAT | concat | 将字符串连接在一起。 |
| CONCAT_WS | concat_ws | 将参数中的所有字符串按照指定的分隔符连接在一起。 |
| DECODE | decode | 将字符串按照指定编码格式解码。 |
| ENCODE | encode | 将字符串按照指定编码格式编码。 |
| FIND_IN_SET | find_in_set | 在以逗号分隔的字符串中查找指定字符串的位置。 |
| FORMAT_NUMBER | format_number | 将数字转化为指定格式的字符串。 |
| FROM_JSON | from_json | 根据给定的JSON字符串和输出格式信息,返回ARRAY、MAP或STRUCT类型。 |
| GET_JSON_OBJECT | get_json_object | 在一个标准JSON字符串中,按照指定方式抽取指定的字符串。 |
| INITCAP | initcap | 将字符串转换为固定格式的字符串,单词之间以空格分隔。转换后的格式为:字符串中每个单词首字母大写,其余小写。 |
| INSTR | instr | 计算A字符串在B字符串中的位置。 |
| IS_ENCODING | is_encoding | 判断字符串是否可以从指定的A字符集转换为B字符集。 |
| KEYVALUE | keyvalue | 将字符串拆分为Key-Value对,并将Key-Value对分开,返回Key对应的Value。 |
| KEYVALUE_TUPLE | keyvalue_tuple | 将字符串拆分为多个Key-Value对,并将Key-Value对分开,返回多个Key对应的Value。 |
| LENGTH | length | 计算字符串的长度。 |
| LENGTHB | lengthb | 计算字符串以字节为单位的长度。 |
| LOCATE | locate | 在字符串中查找另一指定字符串的位置。 |
| LTRIM | ltrim | 去除字符串的左端字符。 |
| MD5 | md5 | 计算字符串的MD5值。 |
| PARSE_URL | parse_url | 对URL进行解析返回指定部分的信息。 |
| PARSE_URL_TUPLE | parse_url_tuple | 对URL进行解析返回多个部分的信息。 |
| REGEXP_COUNT | regexp_count | 计算字符串从指定位置开始,匹配指定规则的子串数。 |
| REGEXP_EXTRACT | regexp_extract | 将字符串按照指定规则拆分为组后,返回指定组的字符串。 |
| REGEXP_INSTR | regexp_instr | 返回字符串从指定位置开始,与指定规则匹配指定次数的子串的起始或结束位置。 |
| REGEXP_REPLACE | regexp_replace | 将字符串中,与指定规则在指定次数匹配的子串替换为另一字符串。 |
| REGEXP_SUBSTR | regexp_substr | 返回字符串中,从指定位置开始,与指定规则匹配指定次数的子串。 |
| REPEAT | repeat | 返回将字符串重复指定次数后的结果。 |
| REVERSE | reverse | 返回倒序字符串。 |
| RTRIM | rtrim | 去除字符串的右端字符。 |
| SPACE | space | 生成空格字符串。 |
| SPLIT_PART | split_part | 按照分隔符拆分字符串,返回指定部分的子串。 |
| SUBSTR | substr | 返回STRING类型字符串从指定位置开始,指定长度的子串。 |
| SUBSTRING | substring | 返回STRING或BINARY类型字符串从指定位置开始,指定长度的子串。 |
| TO_CHAR | to_char | 将BOOLEAN、BIGINT、DECIMAL或DOUBLE类型值转为对应的STRING类型表示。 |
| TO_JSON | to_json | 将指定的复杂类型输出为JSON字符串。 |
| TOLOWER | tolower | 将字符串中的英文字符转换为小写形式。 |
| TOUPPER | toupper | 将字符串中的英文字符转换为大写形式。 |
| TRIM | trim | 去除字符串的左右两端字符。 |
| URL_DECODE | url_decode | 将字符串从application/x-www-form-urlencoded MIME格式转为常规字符。 |
| URL_ENCODE | url_encode | 将字符串编码为application/x-www-form-urlencoded MIME格式。 |
| JSON_TUPLE | json_tuple | 在一个标准的JSON字符串中,按照输入的一组键抽取各个键指定的字符串。 |
| LPAD | lpad | 将字符串向左补足到指定位数。 |
| RPAD | rpad | 将字符串向右补足到指定位数。 |
| REPLACE | replace | 将字符串中与指定字符串匹配的子串替换为另一字符串。 |
| SOUNDEX | soundex | 将普通字符串替换为SOUNDEX字符串。 |
| SUBSTRING_INDEX | substring_index | 截取字符串指定分隔符前的字符串。 |
| TRANSLATE | translate | 将A出现在B中的字符串替换为C字符串。 |
| REGEXP_EXTRACT_ALL | regexp_extract_all | 在字符串中查找所有出现的正则表达式匹配的子字符串,并把找到的字符串以数组形式返回。 |
7、复杂类型函数
MaxCompute SQL支持的复杂类型函数如下。其中JSON函数的使用限制请参见JSON函数的使用限制。
| 函数 | 小写 | 功能 |
|---|---|---|
| ARRAY函数 | array函数 | |
| ALL_MATCH | all_match | 判断ARRAY数组中是否所有元素都满足指定条件。 |
| ANY_MATCH | any_match | 判断ARRAY数组中是否存在满足指定条件的元素。 |
| ARRAY | array | 使用给定的值构造ARRAY。 |
| ARRAY_CONTAINS | array_contains | 检测指定的ARRAY中是否包含指定的值。 |
| ARRAY_DISTINCT | array_distinct | 去除ARRAY数组中的重复元素。 |
| ARRAY_EXCEPT | array_except | 找出在ARRAY A中,但不在ARRAY B中的元素,并去掉重复的元素后,以ARRAY形式返回结果。 |
| ARRAY_INTERSECT | array_intersect | 计算两个ARRAY数组的交集。 |
| ARRAY_JOIN | array_join | 将ARRAY数组中的元素按照指定字符串进行拼接。 |
| ARRAY_MAX | array_max | 计算ARRAY数组中的最大值。 |
| ARRAY_MIN | array_min | 计算ARRAY数组中的最小值。 |
| ARRAY_POSITION | array_position | 计算指定元素在ARRAY数组中第一次出现的位置。 |
| ARRAY_REDUCE | array_reduce | 将ARRAY数组的元素进行聚合。 |
| ARRAY_REMOVE | array_remove | 在ARRAY数组中删除指定元素。 |
| ARRAY_REPEAT | array_repeat | 返回将指定元素重复指定次数后的ARRAY数组。 |
| ARRAY_SORT | array_sort | 将ARRAY数组的元素进行排序。 |
| ARRAY_UNION | array_union | 计算两个ARRAY数组的并集并去掉重复元素。 |
| ARRAYS_OVERLAP | arrays_overlap | 判断两个ARRAY数组中是否包含相同元素。 |
| ARRAYS_ZIP | arrays_zip | 合并多个ARRAY数组。 |
| CONCAT | concat | 将ARRAY数组或字符串连接在一起。 |
| EXPLODE | explode | 将一行数据转为多行的UDTF。 |
| FILTER | filter | 将ARRAY数组中的元素进行过滤。 |
| INDEX | index | 返回ARRAY数组指定位置的元素值。 |
| POSEXPLODE | posexplode | 将指定的ARRAY展开,每个Value一行,每行两列分别对应数组从0开始的下标和数组元素。 |
| SIZE | size | 返回指定ARRAY中的元素数目。 |
| SLICE | slice | 对ARRAY数据切片,返回从指定位置开始、指定长度的数组。 |
| SORT_ARRAY | sort_array | 为指定的数组中的元素排序。 |
| TRANSFORM | transform | 将ARRAY数组中的元素进行转换。 |
| ZIP_WITH | zip_with | 将2个ARRAY数组按照位置进行元素级别的合并。 |
| MAP函数 | map函数 | |
| EXPLODE | explode | 将一行数据转为多行的UDTF。 |
| INDEX | index | 返回MAP类型参数中满足指定条件的Value。 |
| MAP | map | 使用指定的Key-Value对建立MAP。 |
| MAP_CONCAT | map_concat | 返回多个MAP的并集。 |
| MAP_ENTRIES | map_entries | 将MAP中的Key、Value键值映射转换为STRUCT结构数组。 |
| MAP_FILTER | map_filter | 将MAP中的元素进行过滤。 |
| MAP_FROM_ARRAYS | map_from_arrays | 通过给定的ARRAY数组构造MAP。 |
| MAP_FROM_ENTRIES | map_from_entries | 通过给定的结构体数组构造MAP。 |
| MAP_KEYS | map_keys | 将参数MAP中的所有Key作为数组返回。 |
| MAP_VALUES | map_values | 将参数MAP中的所有Value作为数组返回。 |
| MAP_ZIP_WITH | map_zip_with | 对输入的两个MAP进行合并得到一个新MAP。 |
| SIZE | size | 返回指定MAP中的K/V对数。 |
| TRANSFORM_KEYS | transform_keys | 对MAP进行变换,保持Value不变,根据指定函数计算新的Key。 |
| TRANSFORM_VALUES | transform_values | 对MAP进行变换,保持Key不变,根据指定函数计算新的Value。 |
| STRUCT函数 | struct函数 | |
| FIELD | field | 获取STRUCT中的成员变量的取值。 |
| INLINE | inline | 将指定的STRUCT数组展开。每个数组元素对应一行,每行每个STRUCT元素对应一列。 |
| STRUCT | struct | 使用给定Value列表建立STRUCT。 |
| NAMED_STRUCT | named_struct | 使用给定的Name、Value列表建立STRUCT。 |
| JSON函数 | json函数 | |
| FROM_JSON | from_json | 根据给定的JSON字符串和输出格式信息,返回ARRAY、MAP或STRUCT类型。 |
| GET_JSON_OBJECT | get_json_object | 在一个标准JSON字符串中,按照指定方式抽取指定的字符串。 |
| JSON_TUPLE | json_tuple | 在一个标准的JSON字符串中,按照输入的一组键抽取各个键指定的字符串。 |
| TO_JSON | to_json | 将指定的复杂类型输出为JSON字符串。 |
| JSON_OBJECT | json_object | 生成JSON OBJECT,要求key和value成对出现。 |
| JSON_ARRAY | json_array | 生成JSON ARRAY。将一个可能为空的JSON类型对象,转换为包含这些类型的数组。 |
| JSON_EXTRACT | json_extract | 解析JSON表达式中对应json_path的数据,注意json_path非法时会报错。 |
| JSON_EXISTS | json_exists | 查看json_path对应的JSON值是否存在。 |
| JSON_PRETTY | json_pretty | 美化JSON,增加换行及空格。 |
| JSON_TYPE | json_type | 返回JSON数据所属的数据类型名称。 |
| JSON_FORMAT | json_format | 将JSON数据转换成STRING类型,默认不自动进行美化。 |
| JSON_PARSE | json_parse | 将STRING类型转成JSON类型,非JSON格式转换为字符串会报错。 |
| JSON_VALID | json_valid | 检查字符串是否为合法的JSON格式。 |
| CAST | cast | 支持基本类型与JSON类型的转换。 |
8、加密函数
MaxCompute SQL支持的加密函数如下。
| 函数 | 小写 | 功能 |
|---|---|---|
| SYM_ENCRYPT | sym_encrypt | 对表里的指定列做随机性加密,返回BINARY类型的密文。 |
| SYM_DECRYPT | sym_decrypt | 对表里的指定已经随机性加密的列做解密,BINARY类型的明文。 |
9、其他函数
MaxCompute SQL支持的其他类型函数如下。
| 函数 | 小写 | 功能 |
|---|---|---|
| BASE64 | base64 | 将二进制表示值转换为BASE64编码格式字符串。 |
| BETWEEN AND | between and | 筛选满足区间条件的数据。 |
| CASE WHEN | case when | 根据表达式的计算结果,灵活地返回不同的值。 |
| CAST | cast | 将表达式的结果转换为目标数据类型。 |
| COALESCE | coalesce | 返回参数列表中第一个非NULL的值。 |
| COMPRESS | compress | 对STRING或BINARY类型输入参数按照GZIP算法进行压缩。 |
| CRC32 | crc32 | 计算字符串或二进制数据的循环冗余校验值。 |
| DECODE | decode | 实现if-then-else分支选择的功能。 |
| DECOMPRESS | decompress | 对BINARY类型输入参数按照GZIP算法进行解压。 |
| GET_IDCARD_AGE | get_idcard_age | 根据身份证号码返回当前的年龄。 |
| GET_IDCARD_BIRTHDAY | get_idcard_birthday | 根据身份证号码返回出生日期。 |
| GET_IDCARD_SEX | get_idcard_sex | 根据身份证号码返回性别。 |
| GET_USER_ID | get_user_id | 获取当前账号的账号ID。 |
| GREATEST | greatest | 返回输入参数中最大的值。 |
| HASH | hash | 根据输入参数计算Hash值。 |
| IF | if | 判断指定的条件是否为真。 |
| LEAST | least | 返回输入参数中最小的值。 |
| MAX_PT | max_pt | 返回分区表的一级分区的最大值。 |
| NULLIF | nullif | 比较两个入参是否相等。 |
| NVL | nvl | 指定值为NULL的参数的返回结果。 |
| ORDINAL | ordinal | 将输入变量按从小到大排序后,返回指定位置的值。 |
| PARTITION_EXISTS | partition_exists | 查询指定的分区是否存在。 |
| SAMPLE | sample | 对所有读入的列值,采样并过滤掉不满足采样条件的行。 |
| SHA | sha | 计算字符串或二进制数据的SHA-1哈希值。 |
| SHA1 | sha1 | 计算字符串或二进制数据的SHA-1哈希值。 |
| SHA2 | sha2 | 计算字符串或二进制数据的SHA-2哈希值。 |
| SIGN | sign | 判断正负值属性。 |
| SPLIT | split | 将字符串按照指定的分隔符分割后返回数组。 |
| STACK | stack | 将指定的参数组分割为指定的行数。 |
| STR_TO_MAP | str_to_map | 将字符串按照指定的分隔符分割得到Key和Value。 |
| TABLE_EXISTS | table_exists | 查询指定的表是否存在。 |
| TRANS_ARRAY | trans_array | 将一行数据转为多行的UDTF,将列中存储的以固定分隔符格式分隔的数组转为多行。 |
| TRANS_COLS | trans_cols | 将一行数据转为多行数据的UDTF,将不同的列拆分为不同的行。 |
| UNBASE64 | unbase64 | 将BASE64编码格式字符串转换为二进制表示值。 |
| UNIQUE_ID | unique_id | 返回一个随机ID,运行效率高于UUID函数。 |
| UUID | uuid | 返回一个随机ID。 |
相关文章:
DataWorks函数
文章目录 0、MaxCompute预置的函数分类1、日期函数2、数学函数3、算术运算符4、窗口函数5、聚合函数6、字符串函数7、复杂类型函数8、加密函数9、其他函数 0、MaxCompute预置的函数分类 函数类型说明日期函数支持处理DATE、DATETIME、TIMESTAMP等日期类型数据,实现…...
设计模式学习优质网站分享:refactoring.guru
地址 英文版地址:https://refactoring.guru/design-patterns 中文版地址:https://refactoringguru.cn/design-patterns 介绍 这个网站是专门学习 设计模式 和 软件重构 的网站 整体来说并不花哨,但我觉得他最大的优点就是: 概…...
JVM-Java的四种引用
引用分析 无论是通过引用计数算法判断对象的引用数量,还是通过可达性分析算法判断对象是否可达,判定对象是否可被回收都与引用有关,Java 提供了四种强度不同的引用类型 强引用: 被强引用关联的对象不会被回收,只有所…...
探索《黑神话:悟空》品质保障的背后:ISO体系认证
《黑神话:悟空》横空出世 8月20日上午10点,国产首款大型3A游戏《黑神话:悟空》正式上线。游戏一经上线便吸引了无数国内外用户的关注,不仅仅是因为其高超的游戏制作技术,极高的画面精度,精良的的视觉和战斗…...
ArcGIS Pro 实现人口分布栅格TIFF数据的网格提取与可视化
这里在分享一个人口1km精度栅格数据,LandScan是由美国能源部橡树岭国家实验室(ORNL)提供的全球人口分布数据集,具有最高分辨率的全球人口分布数据,是全球人口数据发布的社会标准,是全球最为准确、可靠&…...
select的缺点;poll ;poll的缺点;epoll
1.select的缺点: 1.select监听的文件描述符集合是一个数组,有上限(1024个) 2.select监听的文件描述符集合在应用层,内核层监听事件后需要传递给用户层带来资源开销 3.select需要用户手动查找产生事件的文件…...
keli5_报错 Cannot Load Device Description问题
1原因 之前创建的keli5的项目软件版本与当前的软件版本不同 使其算法要重新选择 2解决方法 2-1 点击图中的魔术棒 2-2 在这个界面中进入 Settings选项(ST-Link Debugger 旁边) 2-3 点击Flash Download 选项进入图中界面 在点击天加 2-4选择fla…...
算法的学习笔记—把二叉树打印成多行(牛客JZ78)
😀前言 在算法面试中,二叉树的层序遍历是一个经典的题目。而这道题的要求是进一步将二叉树的每一层结点值打印成多行,即同一层结点从左至右输出,最终结果存放到一个二维数组中返回。接下来,我们将通过代码实例详细解析…...
FreeRTOS 时间管理
延时函数介绍 函数 描述 vTaskDelay() 相对延时 xTaskDelayUntil() 绝对延时 相对延时:指每次延时都是从执行函数vTaskDelay()开始,直到延时指定的时间结束 绝对延时:指将整个任务的运行周期看成一个整体,适用于需要按…...
F. Valuable Cards D. Smithing Skill
D题 F题 F题: 因为是连续的且都要选,我们直接从左到右去取每个区间到不合法的情况即可,可以在n1的位置添加一个x来结束区间判断。因为是要乘积为x,那么我们只需要放x的因子进去,不然会超时,同时也可以用v…...
【电子通识】IPC-A-600中对验收标准的定义
在文章【电子通识】IPC-A-610标准对产品的四种验收条件都是什么意思?中我们讲到IPC-A-610标准(电子组件的可接受性)对于产品的四种验收条件。本文中我们同理讲一讲IPC-A-600中对验收标准的定义。 IPC-A-600文件中的多数示意图和照片同时表示每…...
MyBatis(初阶)
1.什么是MyBtis MyBatis是持久层框架,⽤于简化JDBC的开发。 2.准备工作 2.1 创建⼯程 数据库: 2.2 配置数据库连接字符串 以application.yml⽂件为例: 2.3 写持久层代码 Data public class UserInfo {private Integer id;private String username;private Stri…...
KDP数据平台:以实战案例验证技术领先力
本文由智领云 LeetTools 工具自动生成 申请试用: https://www.leettools.com/feedback/ 在当今快速发展的技术环境中,数据平台的选择对企业的数字化转型和业务发展至关重要。智领云开源KDP(Kubernetes Data Platform)在数据处理和…...
[Linux] 什么是 Shell?
一、什么是 shell ? shell在英语中的意思就是外壳,所以我们习惯称shell程序为壳程序。那为什么又会被叫做壳程序呢?那是因为shell程序是在内核上面的,属于操作系统的外壳部分,因此我们就称之为壳程序(shell)。 在 Linux 中&#…...
大模型学习应用 2:快速上手大模型基于langchain实现RAG检索应用
快速上手大模型基于langchain实现RAG检索应用 - 项目作业 目录 准备工作镜像选择算力选择安装包数据说明提示参考链接 Task1 申请 api 后,使用 langchain 导入大模型,并打印出大模型信息Task2 使用 langchian 加载数据,并把数据打印出来Task…...
python环境安装之后,cmd输入python回车会打开微软商店
坑爹!python环境安装之后,cmd输入python回车会打开微软商店 最近发现,安装python环境成功之后,可能会出现cmd输入python验证是否安装成功老会打开微软商店! 解决,打开系统环境配置,找到刚安装…...
USB Type-C如何取9V、12V、15V、20V电压-PD快充协议芯片ECP5701
相信大家在生活中也发现了,现在越来越多的设备都改用这种type-C接口的母座进行取电了。 因为欧盟决议 :自2024年起部分消费电子产品必须提供单一的USB-C充电接口。 那么这种type-C接口相比之前的Micro-B接口有着一个很大的优势就是可以有更高的电压&…...
Go 语言 Map 17
Go 语言提供了一个强大的 Map 结构体,用于存储键值对。Map 可以用来存储数据,快速查找和修改数据。下面是 Go 语言 Map 的使用教程。 什么是 Map? Map 是一个键值对的集合,它可以存储任意类型的键和值。Map 中的每个键都是唯一的…...
移植bash到openharmony
1.交叉工具链 下载地址: http://ci.openharmony.cn/workbench/cicd/dailybuild/dailylist 进入ohos-sdk-full,下载一个sdk版本,这里下载的版本是version-Master_Version-OpenHarmony_5.0.0.35-20240805_020232-ohos-sdk-full.tar.gz。 解…...
git stash详细教程
git stash详细教程 基本命令: git stash: 保存当前未提交的更改,并恢复到干净的工作目录。git stash list: 列出所有的 stash。git stash show: 显示最新 stash 的简要内容。git stash show -p: 显示最新 stash 的详细内容。 应用和删除: git stash apply: 应用最新…...
YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
动态 Web 开发技术入门篇
一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...
认识CMake并使用CMake构建自己的第一个项目
1.CMake的作用和优势 跨平台支持:CMake支持多种操作系统和编译器,使用同一份构建配置可以在不同的环境中使用 简化配置:通过CMakeLists.txt文件,用户可以定义项目结构、依赖项、编译选项等,无需手动编写复杂的构建脚本…...
Xela矩阵三轴触觉传感器的工作原理解析与应用场景
Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知,帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量,能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度,还为机器人、医疗设备和制造业的智…...
【工具教程】多个条形码识别用条码内容对图片重命名,批量PDF条形码识别后用条码内容批量改名,使用教程及注意事项
一、条形码识别改名使用教程 打开软件并选择处理模式:打开软件后,根据要处理的文件类型,选择 “图片识别模式” 或 “PDF 识别模式”。如果是处理包含条形码的 PDF 文件,就选择 “PDF 识别模式”;若是处理图片文件&…...
ubuntu清理垃圾
windows和ubuntu 双系统,ubuntu 150GB,开发用,基本不装太多软件。但是磁盘基本用完。 1、查看home目录 sudo du -h -d 1 $HOME | grep -v K 上面的命令查看$HOME一级目录大小,发现 .cache 有26GB,.local 有几个GB&am…...
