operador *
(sinal asterisco)
Aplica-se a: SQL do Databricks Runtime do Databricks
Retorna multiplier
multiplicado por multiplicand
.
Sintaxe
multiplier * multiplicand
Argumentos
multiplier
: uma expressão numérica ou de INTERVALO.multiplicand
: uma expressão numérica ou uma expressão de INTERVAL.
Não é possível especificar um INTERVAL para os dois argumentos.
Retornos
- Se
multiplier
emultiplicand
forem DECIMAL, o resultado será DECIMAL. - Se
multiplier
oumultiplicand
for um INTERVAL, o resultado será do mesmo tipo. - Se tanto
multiplier
quantomultiplicand
forem tipos numéricos integrais, o resultado será o maior dos dois tipos. - Em todos os outros casos, o resultado será um DOUBLE.
Se o multiplier
ou o multiplicand
for 0, o operador retornará 0.
Se o resultado da multiplicação estiver fora do limite do tipo de resultado, um erro de ARITHMETIC_OVERFLOWserá gerado.
Use try_multiply para retornar NULL
no estouro.
Aviso
No Databricks Runtime, se spark.sql.ansi.enabled for false
, o resultado será “encapsulado” se estiver fora dos limites de tipos integrais e será NULL
para tipos fracionários.
Exemplos
> SELECT 3 * 2;
6
> SELECT 2L * 2L;
4L
> SELECT INTERVAL '3' YEAR * 3;
9-0
> SELECT 100Y * 100Y;
Error: ARITHMETIC_OVERFLOW