Share via


POWER (Transact-SQL)

Cette fonction retourne la valeur de l'expression donnée élevée à la puissance spécifiée.

Icône Lien de rubrique Conventions de la syntaxe Transact-SQL

Syntaxe

POWER ( float_expression , y )

Arguments

  • float_expression
    Correspond à une expression de type float ou d'un type pouvant être implicitement converti en float.

  • y
    Représente la puissance à laquelle élever float_expression. y peut être une expression de type numérique exact ou approximatif, à l'exception du type de données bit.

Types de retour

Retourne le même type que celui envoyé dans float_expression. Par exemple, si decimal(2,0) est envoyé en tant que float_expression, le résultat retourné est decimal(2,0).

Exemples

A.Utilisation de la fonction POWER pour retourner le cube d'un nombre

L'exemple suivant montre comment élever un nombre à la puissance 3 (le cube du nombre).

DECLARE @input1 float;
DECLARE @input2 float;
SET @input1= 2;
SET @input2 = 2.5;
SELECT POWER(@input1, 3) AS Result1, POWER(@input2, 3) AS Result2;

Voici l'ensemble des résultats.

Result1                Result2
---------------------- ----------------------
8                      15.625

(1 row(s) affected)

B.Utilisation de la fonction POWER pour afficher les résultats de la conversion du type de données

L'exemple suivant montre comment float_expression conserve le type de données qui peut retourner des résultats inattendus.

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

Voici l'ensemble des résultats.

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

C.Utilisation de POWER

Cet exemple retourne des résultats POWER pour 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

Voici l'ensemble des résultats.

----------- 
2           

(1 row(s) affected)

----------- 
4           

(1 row(s) affected)

----------- 
8           

(1 row(s) affected)

----------- 
16          

(1 row(s) affected)

Voir aussi

Référence

decimal et numeric (Transact-SQL)

float et real (Transact-SQL)

int, bigint, smallint et tinyint (Transact-SQL)

Fonctions mathématiques (Transact-SQL)

money et smallmoney (Transact-SQL)