COALESCE 函数返回第一个非 NULL 表达式。
COALESCE(expr1, expr2 [, expr3, ...]);
参数 | 类型 | 值 |
---|---|---|
exprN | 任意 | 变量或表达式 |
第一个非 NULL 表达式的数据类型。
COALESCE(NULL, 1, 2, 3);
结果:1
支持的数据库系统包括 Oracle、IBM DB2、Teradata、Microsoft SQL Server、PostgreSQL、MySQL 和 Netezza。
PL/HQL 0.03
NVL 函数返回第一个非 NULL 表达式。
NVL(expr1, expr2 [, expr3, ...]);
参数 | 类型 | 值 |
---|---|---|
exprN | 任意 | 变量或表达式 |
第一个非 NULL 表达式的数据类型。
NVL(NULL, 1);
结果:1
支持的数据库系统包括 Oracle、IBM DB2 和 Netezza。
PL/HQL 0.01
CAST 函数将一个表达式转换为指定的数据类型。
CAST(expression AS datatype[(length)]);
将表达式转换为指定长度的字符串:
CAST('Abc' AS CHAR(1));
--
A
截断时间戳字符串:
CAST(TIMESTAMP '2015-03-12 10:58:34.111' AS CHAR(10));
--
2015-03-12
支持的数据库系统包括 Oracle、Microsoft SQL Server、IBM DB2、Teradata、PostgreSQL、MySQL 和 Netezza。
PL/HQL 0.03
CHAR 函数将一个数字转换为字符串。
CHAR(num_expression);
STRING
将数字转换为字符串:
CHAR(1000);
--
1000
支持的数据库系统包括 IBM DB2。
PL/HQL 0.03
CONCAT 函数用于连接两个或多个字符串。
CONCAT(expr, expr2 [, expr3, ...]);
STRING
CONCAT('a', 'b', NULL, 'c');
结果:abc
支持的数据库系统包括 Oracle、IBM DB2、Teradata、Microsoft SQL Server、PostgreSQL、MySQL 和 Netezza。
PL/HQL 0.3.1
您可以使用 || 操作符来连接两个或多个字符串。
expr || expr [|| expr ...]
操作的结果始终为字符串。如果操作数是数字,它在连接之前会被隐式转换为字符串。
如果操作数为 NULL,在连接中将被视为空字符串’'。如果所有操作数都为 NULL,则结果为 NULL。
| 拼接 | 结果 | 结果类型 |
| ‘a’ %%||%% ‘b’ %%||%% ‘c’ | ‘abc’ | 字符串 |
| ‘a’ %%||%% 1 %%||%% ‘c’ | ‘a1c’ | 字符串 |
| ‘a’ %%||%% NULL %%||%% ‘c’ | ‘ac’ | 字符串 |
| NULL %%||%% NULL | NULL | 字符串 |
即时SQL转换
Hive不支持 || 操作符,因此PL/HQL在SQL SELECT语句中会自动转换为[[concat|CONCAT]]函数。
支持的数据库系统包括 Oracle、IBM DB2、Teradata、PostgreSQL 和 Netezza。
HPL/SQL 0.1