Поделиться через


Оператор * (знак звездочки)

Область применения: флажок Databricks SQL флажок Databricks Runtime

Возвращает значение multiplier, умноженное на multiplicand.

Синтаксис

multiplier * multiplicand

Аргументы

  • multiplier: числовое выражение или выражение типа INTERVAL.
  • multiplicand: числовое выражение или выражение типа INTERVAL.

Использовать тип INTERVAL для обоих аргументов нельзя.

Возвраты

  • Если оба значения multiplier и multiplicand имеют тип DECIMAL, результат также будет относиться к типу DECIMAL.
  • Если multiplier или multiplicand является значением типа INTERVAL, результат имеет тот же тип.
  • Если multiplier и multiplicand являются целочисленными типами, в результате получится больше двух типов.
  • Во всех остальных случаях результатом является значение DOUBLE.

Если значение multiplier или multiplicand равно 0, оператор возвращает 0.

Если результат умножения находится за пределами диапазона для соответствующего типа, возникает ошибка ARITHMETIC_OVERFLOW.

Используйте try_multiply для возврата NULL при переполнении.

Предупреждение

В Databricks Runtime, если параметр spark.sql.ansi.enabled , результат false"оболочки", если он не ограничен для целочисленных типов, а результат — NULL для дробных типов.

Примеры

> SELECT 3 * 2;
 6

> SELECT 2L * 2L;
 4L

> SELECT INTERVAL '3' YEAR * 3;
 9-0

> SELECT 100Y * 100Y;
 Error: ARITHMETIC_OVERFLOW