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


POWER (Transact-SQL)

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

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

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

Синтаксис

POWER ( float_expression , y )  

Аргументы

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

г
Степень, в которую возводится аргумент 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)