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


ВЛАСТЬ (Transact-SQL)

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

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

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

Синтаксис

POWER ( float_expression , y )  

Аргументы

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

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

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

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

Тип Ввода Возвращаемый тип
Плавающий, настоящий float
Десятичная(p, s) Десятичная система (38, с)
int, smallint, tinyint int
bigint bigint
деньги, маленькие деньги money
бит, чар, нчар, варчар, нварчар 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  

В. Применение функции 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)
деньги и мелочь (Transact-SQL)