This topic describes the mappings between the built-in functions of MaxCompute and the built-in functions of Hive, MySQL, and Oracle. This way, you can find the built-in functions of MaxCompute that match specific built-in functions of Hive, MySQL, and Oracle.
Date functions
| MaxCompute | Hive | MySQL | Oracle |
|---|---|---|---|
| DATEADD | N/A | N/A | N/A |
| DATE_ADD | DATE_ADD | DATE_ADD | N/A |
| DATE_SUB | DATE_SUB | DATE_SUB | N/A |
| DATEDIFF | DATEDIFF | DATEDIFF | MONTHS_BETWEEN |
| DATEPART | N/A | DATE_FORMAT | EXTRACT (DATETIME) |
| DATETRUNC | TRUNC | DATE_FORMAT | EXTRACT (DATETIME) |
| FROM_UNIXTIME | FROM_UNIXTIME | FROM_UNIXTIME | N/A |
| GETDATE | CURRENT_DATE | NOW | CURRENT_DATE |
| ISDATE | N/A | STR_TO_DATE (The return value FALSE indicates that a string cannot be converted into a date value.) | N/A |
| LASTDAY | LAST_DAY | LAST_DAY | LAST_DAY |
| TO_DATE | TO_DATE | STR_TO_DATE | DATE |
| TO_CHAR | N/A | DATE_FORMAT | TO_CHAR (DATETIME) |
| UNIX_TIMESTAMP | UNIX_TIMESTAMP | UNIX_TIMESTAMP | N/A |
| WEEKDAY | N/A | WEEKDAY | N/A |
| WEEKOFYEAR | WEEKOFYEAR | WEEKOFYEAR | N/A |
| ADD_MONTHS | ADD_MONTHS | ADDDATE | ADD_MONTHS |
| CURRENT_TIMESTAMP | CURRENT_TIMESTAMP | CURRENT_TIMESTAMP | CURRENT_TIMESTAMP |
| DAY | DAY | DAY | DAY |
| DAYOFMONTH | DAYOFMONTH | DAYOFMONTH | N/A |
| EXTRACT | EXTRACT | EXTRACT | EXTRACT |
| FROM_UTC_TIMESTAMP | FROM_UTC_TIMESTAMP | N/A | N/A |
| HOUR | HOUR | HOUR | HOUR |
| LAST_DAY | LAST_DAY | LAST_DAY | N/A |
| MINUTE | MINUTE | MINUTE | MINUTE |
| MONTH | MONTH | MONTH | MONTH |
| MONTHS_BETWEEN | MONTHS_BETWEEN | TIMESTAMPDIFF | MONTHS_BETWEEN |
| NEXT_DAY | NEXT_DAY | N/A | NEXT_DAY |
| QUARTER | QUARTER | QUARTER | QUARTER |
| SECOND | SECOND | SECOND | N/A |
| TO_MILLIS | N/A | N/A | N/A |
| YEAR | YEAR | YEAR | N/A |
Note The MaxCompute mode is enabled by default. To use the Hive-compatible mode, run one
of the following commands:
-- Switch to the Hive-compatible mode at the project level.
setproject odps.sql.hive.compatible=True;
-- Switch to the Hive-compatible mode at the session level.
set odps.sql.hive.compatible=True;Mathematical functions
| MaxCompute | Hive | MySQL | Oracle |
|---|---|---|---|
| ABS | ABS | ABS | ABS |
| ACOS | ACOS | ACOS | ACOS |
| ASIN | ASIN | ASIN | ASIN |
| ATAN | ATAN | ATAN | ATAN |
| CEIL | CEIL | CEIL | CEIL |
| CONV | CONV | CONV | N/A |
| COS | COS | COS | COS |
| COSH | COSH | N/A | COSH |
| COT | COT | COT | COT |
| EXP | EXP | EXP | EXP |
| FLOOR | FLOOR | FLOOR | FLOOR |
| LN | LN | LN | LN |
| LOG | LOG | LOG | LOG |
| POW | POW | POW | POWER |
| RAND | RAND | RAND | N/A |
| ROUND | ROUND | ROUND | ROUND |
| SIN | SIN | SIN | SIN |
| SINH | SINH | N/A | SINH |
| SQRT | SQRT | SQRT | SQRT |
| TAN | TAN | TAN | TAN |
| TANH | TANH | N/A | TANH |
| TRUNC | TRUNC | TRUNCATE | TRUNC |
| BIN | BIN | BIN | BITAND |
| CBRT | CBRT | N/A | N/A |
| CORR | CORR | CORR | CORR |
| DEGREES | DEGREES | DEGREES | DEGREES |
| E | E | N/A | N/A |
| FACTORIAL | FACTORIAL | N/A | N/A |
| FORMAT_NUMBER | FORMAT_NUMBER | FORMAT | N/A |
| HEX | HEX | HEX | RAWTOHEX |
| LOG2 | LOG2 | LOG2 | LOG |
| LOG10 | LOG10 | LOG10 | LOG |
| PI | PI | PI | PI |
| RADIANS | RADIANS | RADIANS | RADIANS |
| SIGN | SIGN | SIGN | SIGN |
| SHIFTLEFT | SHIFTLEFT | << | N/A |
| SHIFTRIGHT | SHIFTRIGHT | >> | N/A |
| SHIFTRIGHTUNSIGNED | SHIFTRIGHTUNSIGNED | >>> | N/A |
| UNHEX | UNHEX | UNHEX | HEXTORAW |
| WIDTH_BUCKET | WIDTH_BUCKET | N/A | WIDTH_BUCKET |
Note The MaxCompute mode is enabled by default. To use the Hive-compatible mode, run one
of the following commands:
-- Switch to the Hive-compatible mode at the project level.
setproject odps.sql.hive.compatible=True;
-- Switch to the Hive-compatible mode at the session level.
set odps.sql.hive.compatible=True;Window functions
| MaxCompute | Hive | MySQL | Oracle |
|---|---|---|---|
| COUNT | COUNT | COUNT | COUNT |
| AVG | AVG | AVG | AVG |
| MAX | MAX | MAX | MAX |
| MIN | MIN | MIN | MIN |
| MEDIAN | N/A | N/A | MEDIAN |
| STDDEV | N/A | STDDEV | STDDEV |
| STDDEV_SAMP | N/A | STDDEV_SAMP | STDDEV_SAMP |
| SUM | SUM | SUM | SUM |
| DENSE_RANK | DENSE_RANK | DENSE_RANK | DENSE_RANK |
| RANK | RANK | RANK | RANK |
| LAG | LAG | LAG | LAG |
| LEAD | LEAD | LEAD | LEAD |
| PERCENT_RANK | PERCENT_RANK | PERCENT_RANK | PERCENT_RANK |
| ROW_NUMBER | ROW_NUMBER | ROW_NUMBER | ROW_NUMBER |
| CLUSTER_SAMPLE | N/A | N/A | N/A |
| CUME_DIST | CUME_DIST | CUME_DIST | CUME_DIST |
| NTILE | NTILE | NTILE | NTILE |
Aggregate functions
| MaxCompute | Hive | MySQL | Oracle |
|---|---|---|---|
| AVG | AVG | AVG | AVG |
| COUNT | COUNT | COUNT | COUNT |
| COUNT_IF | N/A | N/A | N/A |
| MAX | MAX | MAX | MAX |
| MIN | MIN | MIN | MIN |
| MEDIAN | N/A | N/A | MEDIAN |
| STDDEV | STDDEV | STDDEV | STDDEV |
| STDDEV_SAMP | STDDEV_SAMP | STDDEV_SAMP | STDDEV_SAMP |
| SUM | SUM | SUM | SUM |
| WM_CONCAT | N/A | GROUP_CONCAT | WM_CONCAT |
| ANY_VALUE | N/A | N/A | N/A |
| APPROX_DISTINCT | N/A | N/A | N/A |
| ARG_MAX | N/A | N/A | N/A |
| ARG_MIN | N/A | N/A | N/A |
| COLLECT_LIST | COLLECT LIST | N/A | COLLECT |
| COLLECT_SET | COLLECT SET | N/A | COLLECT |
| COVAR_POP | COVAR_POP | N/A | COVAR_POP |
| COVAR_SAMP | COVAR_SAMP | N/A | COVAR_SAMP |
| NUMERIC_HISTOGRAM | NUMERIC_HISTOGRAM | N/A | N/A |
| PERCENTILE | PERCENTILE | N/A | N/A |
| PERCENTILE_APPROX | PERCENTILE_APPROX | N/A | N/A |
| VARIANCE/VAR_POP | VARIANCE/VAR_POP | VAR_POP | VARIANCE/VAR_POP |
| VAR_SAMP | VAR_SAMP | VAR_SAMP | VAR_SAMP |
Note The MaxCompute mode is enabled by default. To use the Hive-compatible mode, run one
of the following commands:
-- Switch to the Hive-compatible mode at the project level.
setproject odps.sql.hive.compatible=True;
-- Switch to the Hive-compatible mode at the session level.
set odps.sql.hive.compatible=True;String functions
| MaxCompute | Hive | MySQL | Oracle |
|---|---|---|---|
| ASCII | ASCII | ASCII | ASCII |
| CHAR_MATCHCOUNT | N/A | N/A | N/A |
| CHR | CHR | CHAR | CHR |
| CONCAT | CONCAT | CONCAT | CONCAT |
| ENCODE | ENCODE | N/A | N/A |
| FIND_IN_SET | FIND_IN_SET | FIND_IN_SET | N/A |
| FORMAT_NUMBER | FORMAT_NUMBER | FORMAT | N/A |
| FROM_JSON | N/A | N/A | N/A |
| GET_JSON_OBJECT | GET_JSON_OBJECT | JSON_EXTRACT | N/A |
| INSTR | INSTR | INSTR | INSTR |
| IS_ENCODING | N/A | N/A | N/A |
| KEYVALUE | N/A | N/A | N/A |
| LENGTH | LENGTH | LENGTH | LENGTH |
| LENGTHB | LENGTHB | LENGTHB | LENGTHB |
| LOCATE | LOCATE | LOCATE | N/A |
| LTRIM | LTRIM | LTRIM | LTRIM |
| MD5 | MD5 | MD5 | N/A |
| PARSE_URL | PARSE_URL | N/A | N/A |
| PARSE_URL_TUPLE | PARSE_URL_TUPLE | N/A | N/A |
| REGEXP_COUNT | N/A | N/A | REGEXP_COUNT |
| REGEXP_EXTRACT | REGEXP_EXTRACT | N/A | N/A |
| REGEXP_INSTR | N/A | REGEXP_INSTR | REGEXP_INSTR |
| REGEXP_REPLACE | REGEXP_REPLACE | REGEXP_REPLACE | REGEXP_REPLACE |
| REGEXP_SUBSTR | N/A | REGEXP_SUBSTR | REGEXP_SUBSTR |
| REPEAT | REPEAT | REPEAT | REPEAT |
| REVERSE | REVERSE | REVERSE | REVERSE |
| RTRIM | RTRIM | RTRIM | RTRIM |
| SPACE | SPACE | SPACE | SPACE |
| SPLIT_PART | N/A | N/A | N/A |
| SUBSTR | SUBSTR | SUBSTR | SUBSTR |
| SUBSTRING | SUBSTRING | SUBSTRING | SUBSTR |
| TO_CHAR | N/A | N/A | N/A |
| TO_JSON | N/A | N/A | N/A |
| TOLOWER | LOWER | LOWER | LOWER |
| TOUPPER | UPPER | UPPER | UPPER |
| TRIM | TRIM | TRIM | TRIM |
| URL_DECODE | N/A | N/A | N/A |
| URL_ENCODE | N/A | N/A | PERCENTILE_CONT |
| CONCAT_WS | CONCAT_WS | CONCAT_WS | N/A |
| JSON_TUPLE | JSON_TUPLE | N/A | N/A |
| LPAD | LPAD | LPAD | LPAD |
| RPAD | RPAD | RPAD | RPAD |
| REPLACE | REPLACE | REPLACE | REPLACE |
| SOUNDEX | SOUNDEX | SOUNDEX | SOUNDEX |
| SUBSTRING_INDEX | SUBSTRING_INDEX | SUBSTRING_INDEX | N/A |
| TRANSLATE | TRANSLATE | N/A | TRANSLATE |
Note The MaxCompute mode is enabled by default. To use the Hive-compatible mode, run one
of the following commands:
-- Switch to the Hive-compatible mode at the project level.
setproject odps.sql.hive.compatible=True;
-- Switch to the Hive-compatible mode at the session level.
set odps.sql.hive.compatible=True;Other functions
| MaxCompute | Hive | MySQL | Oracle |
|---|---|---|---|
| BASE64 | BASE64 | TO_BASE64 | UTL_ENCODE.BASE64_ENCODE |
| BETWEEN AND expression | BETWEEN AND | BETWEEN AND | BETWEEN AND |
| CASE WHEN expression | CASE WHEN | CASE WHEN | CASE WHEN |
| CAST | CAST | CAST | CAST |
| COALESCE | COALESCE | COALESCE | COALESCE |
| COMPRESS | N/A | COMPRESS | UTL_COMPRESS.LZ_COMPRESS |
| CRC32 | CRC32 | CRC32 | N/A |
| DECODE | DECODE | N/A | DECODE |
| DECOMPRESS | N/A | UNCOMPRESS | UTL_COMPRESS.LZ_UNCOMPRESS |
| GET_IDCARD_AGE | N/A | N/A | N/A |
| GET_IDCARD_BIRTHDAY | N/A | N/A | N/A |
| GET_IDCARD_SEX | N/A | N/A | N/A |
| GET_USER_ID | CURRENT_USER | CURRENT_USER | UID |
| GREATEST | GREATEST | GREATEST | N/A |
| HASH | HASH | N/A | ORA_HASH |
| IF | IF | IF | IF |
| LEAST | LEAST | LEAST | LEAST |
| MAX_PT | N/A | N/A | N/A |
| NULLIF | NULLIF | NULLIF | NULLIF |
| NVL | NVL | IFNULL | N/A |
| ORDINAL | N/A | N/A | N/A |
| PARTITION_EXISTS | N/A | N/A | N/A |
| SAMPLE | N/A | N/A | N/A |
| SHA | SHA | SHA | N/A |
| SHA1 | SHA1 | SHA1 | N/A |
| SHA2 | SHA2 | SHA2 | N/A |
| SIGN | SIGN | SIGN | SIGN |
| SPLIT | SPLIT | SPLIT | N/A |
| STACK | STACK | N/A | N/A |
| STR_TO_MAP | STR_TO_MAP | N/A | N/A |
| TABLE_EXISTS | N/A | N/A | N/A |
| TRANS_ARRAY | N/A | N/A | N/A |
| TRANS_COLS | N/A | N/A | N/A |
| UNBASE64 | UNBASE64 | FROM_BASE64 | UTL_ENCODE.BASE64_DECODE |
| UNIQUE_ID | N/A | N/A | N/A |
| UUID | N/A | UUID | UID |
Note The MaxCompute mode is enabled by default. To use the Hive-compatible mode, run one
of the following commands:
-- Switch to the Hive-compatible mode at the project level.
setproject odps.sql.hive.compatible=True;
-- Switch to the Hive-compatible mode at the session level.
set odps.sql.hive.compatible=True;Complex type functions
| Function type | MaxCompute | Hive | MySQL | Oracle |
|---|---|---|---|---|
| ARRAY | ALL_MATCH | N/A | N/A | N/A |
| ANY_MATCH | N/A | N/A | N/A | |
| ARRAY | ARRAY | N/A | N/A | |
| ARRAY_CONTAINS | ARRAY_CONTAINS | N/A | N/A | |
| ARRAY_DISTINCT | N/A | N/A | N/A | |
| ARRAY_EXCEPT | N/A | N/A | N/A | |
| ARRAY_INTERSECT | N/A | N/A | N/A | |
| ARRAY_JOIN | N/A | N/A | N/A | |
| ARRAY_MAX | N/A | N/A | N/A | |
| ARRAY_MIN | N/A | N/A | N/A | |
| ARRAY_POSITION | N/A | N/A | N/A | |
| ARRAY_REMOVE | N/A | N/A | N/A | |
| ARRAY_REDUCE | N/A | N/A | N/A | |
| ARRAY_REPEAT | N/A | N/A | N/A | |
| ARRAY_SORT | N/A | N/A | N/A | |
| ARRAY_UNION | N/A | N/A | N/A | |
| ARRAYS_OVERLAP | N/A | N/A | N/A | |
| ARRAYS_ZIP | N/A | N/A | N/A | |
| CONCAT | CONCAT | N/A | N/A | |
| EXPLODE | EXPLODE | N/A | N/A | |
| FILTER | N/A | N/A | N/A | |
| INDEX | [] operator | N/A | N/A | |
| POSEXPLODE | POSEXPLODE | N/A | N/A | |
| SIZE | SIZE | N/A | N/A | |
| SLICE | N/A | N/A | N/A | |
| SORT_ARRAY | SORT_ARRAY | N/A | N/A | |
| TRANSFORM | N/A | N/A | N/A | |
| ZIP_WITH | N/A | N/A | N/A | |
| MAP | EXPLODE | EXPLODE | N/A | N/A |
| INDEX | [] operator | N/A | N/A | |
| MAP | MAP | N/A | N/A | |
| MAP_CONCAT | N/A | N/A | N/A | |
| MAP_ENTRIES | N/A | N/A | N/A | |
| MAP_FILTER | N/A | N/A | N/A | |
| MAP_FROM_ARRAYS | N/A | N/A | N/A | |
| MAP_FROM_ENTRIES | N/A | N/A | N/A | |
| MAP_KEYS | MAP_KEYS | N/A | N/A | |
| MAP_VALUES | MAP_VALUES | N/A | N/A | |
| MAP_ZIP_WITH | N/A | N/A | N/A | |
| SIZE | SIZE | N/A | N/A | |
| TRANSFORM_KEYS | N/A | N/A | N/A | |
| TRANSFORM_VALUES | N/A | N/A | N/A | |
| STRUCT | FIELD | . operator | N/A | N/A |
| INLINE | INLINE | N/A | N/A | |
| STRUCT | STRUCT | N/A | N/A | |
| NAMED_STRUCT | N/A | N/A | N/A | |
| JSON | FROM_JSON | N/A | N/A | N/A |
| GET_JSON_OBJECT | GET_JSON_OBJECT | JSON_EXTRACT | N/A | |
| JSON_TUPLE | JSON_TUPLE | N/A | N/A | |
| TO_JSON | N/A | N/A | N/A |
Note The MaxCompute mode is enabled by default. To use the Hive-compatible mode, run one
of the following commands:
-- Switch to the Hive-compatible mode at the project level.
setproject odps.sql.hive.compatible=True;
-- Switch to the Hive-compatible mode at the session level.
set odps.sql.hive.compatible=True;