Compartilhar via


PODER (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsAnalytics Platform System (PDW)Ponto de extremidade de análise de SQL no Microsoft FabricDepósito 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 e PDW (Analytics Platform System)

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

Confira também

decimal e numeric (Transact-SQL)
flutuante e real (Transact-SQL)
int, bigint, smallint e tinyint (Transact-SQL)
Funções matemáticas (Transact-SQL)
money e smallmoney (Transact-SQL)