POWER (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punto de conexión de análisis SQL en Microsoft FabricAlmacenamiento en Microsoft Fabric

Devuelve el valor de la expresión especificada a la potencia especificada.

Convenciones de sintaxis de Transact-SQL

Sintaxis

POWER ( float_expression , y )  

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

float_expression
Es una expresión de tipo float o de un tipo que se puede convertir en float de manera implícita.

y
Es la potencia a la que elevar float_expression. y puede ser una expresión de la categoría de tipos de datos numérico exacto o numérico aproximado, excepto para el tipo de datos bit.

Tipos de valor devuelto

El tipo de valor devuelto depende del tipo de entrada de float_expression:

Tipo de entrada Tipo de valor devuelto
float, real float
decimal(p, s) decimal(38, s)
int, smallint, tinyint int
bigint bigint
money, smallmoney money
bit, char, nchar, varchar, nvarchar float

Si el resultado no cabe en el tipo de valor devuelto, se produce un error de desbordamiento aritmético.

Ejemplos

A. Usar POWER para devolver el cubo de un número

En el ejemplo siguiente se muestra cómo elevar un número a la potencia 3 (el cubo del 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;  

El conjunto de resultados es el siguiente:

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

B. Usar POWER para mostrar los resultados de la conversión del tipo de datos

En el ejemplo siguiente se muestra cómo float_expression conserva el tipo de datos que puede devolver 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  

El conjunto de resultados es el siguiente:

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

C. Usar POWER

El ejemplo siguiente devuelve los 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  

El conjunto de resultados es el siguiente:

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

Ejemplos: Azure Synapse Analytics y Sistema de la plataforma de análisis (PDW)

D. Usar POWER para devolver el cubo de un número

En este ejemplo se devuelven resultados de POWER para 2.0 a la potencia 3.

SELECT POWER(2.0, 3);  

El conjunto de resultados es el siguiente:

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

Consulte también

decimal y numeric (Transact-SQL)
float y real (Transact-SQL)
int, bigint, smallint y tinyint (Transact-SQL)
Funciones matemáticas (Transact-SQL)
money y smallmoney (Transact-SQL)