POWER (Transact-SQL)

возвращает значение указанного выражения, возведенное в заданную степень.

Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск).

Значок ссылки на раздел Cинтаксические обозначения в Transact-SQL

Синтаксис

POWER ( float_expression , y )

Аргументы

  • float_expression
    Выражение, имеющее тип float или тип, который может быть неявно преобразован в float.

  • y
    Степень, в которую возводится аргумент float_expression. y может быть выражением категории точного или приблизительного числового типа данных, за исключением типа данных bit.

Типы возвращаемых данных

Возвращает тот же тип, что был отправлен в float_expression. Например, если decimal(2.0) отправлено как float_expression, возвращается значение decimal(2.0).

Примеры

А.Использование функции POWER для возврата куба числа

Следующий пример демонстрирует возведение числа в степень 3 (в куб).

DECLARE @input1 float;
DECLARE @input2 float;
SET @input1= 2;
SET @input2 = 2.5;
SELECT POWER(@input1, 3) AS Result1, POWER(@input2, 3) AS Result2;

Ниже приводится результирующий набор.

Result1                Result2
---------------------- ----------------------
8                      15.625

(1 row(s) affected)

Б.Использование функции POWER для вывода результатов преобразования типов данных

В следующем примере показано, как float_expression сохраняет тип данных, который может возвращать непредвиденные результаты.

SELECT 
POWER(CAST(2.0 AS float), -100.0) AS FloatResult,
POWER(2, -100.0) AS IntegerResult,
POWER(CAST(2.0 AS int), -100.0) AS IntegerResult,
POWER(2.0, -100.0) AS Decimal1Result,
POWER(2.00, -100.0) AS Decimal2Result,
POWER(CAST(2.0 AS decimal(5,2)), -100.0) AS Decimal2Result;
GO

Ниже приводится результирующий набор.

FloatResult            IntegerResult IntegerResult Decimal1Result Decimal2Result Decimal2Result
---------------------- ------------- ------------- -------------- -------------- --------------
7.88860905221012E-31   0             0             0.0            0.00           0.00

В.Применение функции POWER

В следующем примере показаны результаты применения функции POWER для 2.

DECLARE @value int, @counter int;
SET @value = 2;
SET @counter = 1;

WHILE @counter < 5
   BEGIN
      SELECT POWER(@value, @counter)
      SET NOCOUNT ON
      SET @counter = @counter + 1
      SET NOCOUNT OFF
   END;
GO

Ниже приводится результирующий набор.

----------- 
2           

(1 row(s) affected)

----------- 
4           

(1 row(s) affected)

----------- 
8           

(1 row(s) affected)

----------- 
16          

(1 row(s) affected)

См. также

Справочник

decimal и numeric (Transact-SQL)

Типы данных float и real (Transact-SQL)

int, bigint, smallint и tinyint (Transact-SQL)

Математические функции (Transact-SQL)

Типы money и smallmoney (Transact-SQL)