Partager via


POWER (Transact-SQL)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL analytics endpoint in Microsoft Fabric Warehouse in Microsoft Fabric

Retourne la valeur de l’expression spécifiée élevée à la puissance spécifiée.

Conventions de la syntaxe Transact-SQL

Syntaxe

POWER ( float_expression , y )  

Arguments

float_expression
Expression de type float ou dont le type peut être implicitement converti en type float.

y
Puissance à laquelle élever float_expression. y peut être une expression de la catégorie de type de données numérique exacte ou approximative, à l’exception du type de données bit.

Types de retour

Le type de retour dépend du type d’entrée de float_expression :

Type d’entrée Type de retour
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 le résultat ne tient pas dans le type de retour, une erreur de dépassement de capacité arithmétique se produit.

Exemples

R. 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 le jeu de 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 renvoyer 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 le jeu de 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 le jeu de résultats.

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

Exemples : Azure Synapse Analytics et Analytics Platform System (PDW)

D : Utilisation de la fonction POWER pour renvoyer le cube d’un nombre

L’exemple suivant retourne les résultats de POWER pour 2.0 à la puissance 3.

SELECT POWER(2.0, 3);  

Voici le jeu de résultats.

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

Voir aussi

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)