POWER (Transact-SQL)

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Управляемый экземпляр SQL Azure Конечная точка аналитики аналитики Synapse Analytics Analytics (PDW)SQL Analyticsв Microsoft FabricХранилище в Microsoft Fabric

Возвращает значение определенного выражения в определенной степени.

Соглашения о синтаксисе Transact-SQL

Синтаксис

POWER ( float_expression , y )  

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Аргументы

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

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

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

Тип возвращаемого значения зависит от типа входных данных float_expression:

Тип Ввода Возвращаемый тип
float, real float
decimal(p, s) decimal(38, s)
int, smallint, tinyint int
bigint bigint
money, smallmoney money
bit, char, nchar, varchar, nvarchar float

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

Примеры

А. Использование функции 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)  

B. Использование функции 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  

C. Применение функции 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)  

Примеры: Azure Synapse Analytics и система платформы аналитики (PDW)

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

В приведенном ниже примере показано, как функция POWER возвращает значение 2.0, возведенное в третью степень.

SELECT POWER(2.0, 3);  

Результирующий набор:

------------ 
8.0

См. также

десятичная и числовая (Transact-SQL)
float и real (Transact-SQL)
int, bigint, smallint и tinyint (Transact-SQL)
Математические функции (Transact-SQL)
money and smallmoney (Transact-SQL)