Delen via


POWER (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric

Geeft de waarde van de gespecificeerde uitdrukking terug aan de gespecificeerde macht.

Transact-SQL syntaxis-conventies

Syntaxis

POWER ( float_expression , y )  

Arguments

float_expression
Is een uitdrukking van het type float of van een type dat impliciet kan worden omgezet in float.

y
Is de kracht waartoe je float_expression moet opvoeden. y kan een uitdrukking zijn van de exacte numerieke of benaderende numerieke datatypecategorie, behalve voor het bitdatatype .

Retourtypen

Het retourtype hangt af van het invoertype van float_expression:

Invoertype Resultaattype
Float, echt float
Decimaal(P, S) Decimaal(38, s)
int, smallint, tinyint int
bigint bigint
geld, smallmoney geld
bit, char, nchar, varchar, nvarchar float

Als het resultaat niet in het retourtype past, treedt er een rekenkundige overloopfout op.

Voorbeelden

Eén. POWER gebruiken om de kubus van een getal terug te geven

Het volgende voorbeeld toont aan hoe een getal wordt verhoogd tot de macht van 3 (de kubus van het getal).

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

Hier is het resultatenoverzicht.

Result1                Result2  
---------------------- ----------------------  
8                      15.625  
  
(1 row(s) affected)  

B. POWER gebruiken om resultaten van datatypeconversie te tonen

Het volgende voorbeeld laat zien hoe de float_expression het datatype bewaart dat onverwachte resultaten kan opleveren.

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  

Hier is het resultatenoverzicht.

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

C. POWER gebruiken

Het volgende voorbeeld geeft resultaten voor POWER2.

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  

Hier is het resultatenoverzicht.

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

Voorbeelden: Azure Synapse Analytics and Analytics Platform System (PDW)

D: POWER gebruiken om de kubus van een getal terug te geven

Het volgende voorbeeld toont resultaten voor 2.0 tot POWER de derde macht.

SELECT POWER(2.0, 3);  

Hier is het resultatenoverzicht.

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

Zie ook

decimaal en numeriek (Transact-SQL)
drijvend en echt (Transact-SQL)
int, bigint, smallint en tinyint (Transact-SQL)
Wiskundige functies (Transact-SQL)
geld en smallmoney (Transact-SQL)