Compartir a través de


POWER (Transact-SQL)

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

Icono de vínculo a temas 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 a float de manera implícita.

  • y
    Es la potencia a la que se eleva 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

Devuelve el mismo tipo que el enviado en el parámetro float_expression. por ejemplo, si se envía decimal(2,0) como float_expression, el resultado devuelto es decimal(2,0).

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)

Vea también

Referencia

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)