Compartir a través de


POWER (Transact-SQL)

Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Punto de conexión de análisis SQL en Microsoft Fabric Almacenamiento 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 )  

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;  

Este es el conjunto de resultados.

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  

Este es el conjunto de resultados.

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  

Este es el conjunto de resultados.

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

Este es el conjunto de resultados.

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