POWER (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Point de terminaison analytique SQL dans Microsoft FabricEntrepôt dans 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 )  

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

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 obtenu.

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 obtenu.

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 obtenu.

-----------   
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 obtenu.

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