PODER (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsEndpoint de análise SQL no Microsoft FabricArmazém no Microsoft FabricBanco de dados SQL no Microsoft Fabric

Retorna o valor da expressão especificada para a potência indicada.

Convenções de sintaxe de Transact-SQL

Sintaxe

POWER ( float_expression , y )  

Argumentos

float_expression
É uma expression do tipo float ou de um tipo que pode ser convertido implicitamente em float.

y
É a potência à qual elevar float_expression. y pode ser uma expressão da categoria de tipo de dados numéricos exatos ou aproximados, com exceção do tipo de dados bit.

Tipos de retorno

O tipo de retorno depende do tipo de entrada da float_expression:

Tipo de entrada Tipo de retorno
flutuar, real float
decimal(p, s) decimal(38, s)
int, smallint, minyint int
bigint bigint
dinheiro, dinheiro pequeno money
bit, char, nchar, varchar, nvarchar float

Se o resultado não se adequar ao tipo de retorno, ocorrerá um erro de estouro aritmético.

Exemplos

a. Usando POWER para retornar o cubo de um número

O exemplo a seguir demonstra a elevação de um número à potência 3 (o cubo do número).

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

Veja a seguir o conjunto de resultados.

Result1                Result2  
---------------------- ----------------------  
8                      15.625  
  
(1 row(s) affected)  

B. Usando POWER para mostrar os resultados da conversão de tipo de dados

O exemplo a seguir mostra como float_expression preserva o tipo de dados que pode retornar resultados inesperados.

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  

Veja a seguir o conjunto de resultados.

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

C. Usando POWER

O exemplo a seguir retorna os resultados de POWER para 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  

Veja a seguir o conjunto de resultados.

-----------   
2             
  
(1 row(s) affected)  
  
-----------   
4             
  
(1 row(s) affected)  
  
-----------   
8             
  
(1 row(s) affected)  
  
-----------   
16            
  
(1 row(s) affected)  

Exemplos: Azure Synapse Analytics

D: Usando POWER para retornar o cubo de um número

O exemplo a seguir mostra retorna POWER resultados para 2.0 à 3ª potência.

SELECT POWER(2.0, 3);  

Veja a seguir o conjunto de resultados.

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