Partilhar via


POWER (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics PDW (Analytics Platform System) Ponto de extremidade de análise de SQL no Microsoft Fabric Warehouse 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 )  

Observação

Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

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
float, real float
decimal(p, s) decimal(38, s)
int, smallint, tinyint int
bigint bigint
money, smallmoney 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;  

Este é 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  

Este é 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  

Este é 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);  

Este é o conjunto de resultados.

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

Consulte 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)