POWER (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-Endpunkt in Microsoft FabricWarehouse in Microsoft Fabric

Gibt den Wert des angegebenen Ausdrucks gemäß der angegebenen Potenz zurück.

Transact-SQL-Syntaxkonventionen

Syntax

POWER ( float_expression , y )  

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

Argumente

float_expression
Ein Ausdruck vom Typ float oder von einem Typ, der implizit in float konvertiert werden kann.

y
Die Potenz, in die float_expression erhoben werden soll. y kann ein Ausdruck der genauen numerischen oder ungefähren numerischen Datentypkategorie sein, mit Ausnahme des bit-Datentyps.

Rückgabetypen

Der Rückgabetyp hängt vom Eingabetyp von float_expression ab:

Eingabetyp Rückgabetyp
float, real float
decimal(p, s) decimal(38, s)
int, smallint, tinyint int
bigint bigint
money, smallmoney money
bit, char, nchar, varchar, nvarchar float

Wenn das Ergebnis nicht zum Rückgabetyp passt, wird ein Fehler durch einen arithmetischen Überlauf ausgelöst.

Beispiele

A. Rückgabe der Kubikwurzel einer Zahl mit POWER

Im folgenden Beispiel wird das Potenzieren einer Zahl mit 3 (der Kubikwurzel der Zahl) veranschaulicht.

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 ist das Resultset.

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

B. Anzeigen der Ergebnisse einer Datentypkonvertierung mit POWER

Im folgenden Beispiel wird veranschaulicht, wie der Datentyp von float_expression beibehalten wird, was zu unerwarteten Ergebnissen führen kann.

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 ist das Resultset.

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

C. Verwenden von POWER

Das folgende Beispiel gibt POWER-Ergebnisse für 2 zurück.

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 ist das Resultset.

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

Beispiele: Azure Synapse Analytics und Analytics-Plattformsystem (PDW)

D: Rückgabe des Cubes einer Zahl mit POWER

Im folgenden Beispiel wird die Rückgabe von POWER-Ergebnissen für 2.0 an die dritte Potenz dargestellt.

SELECT POWER(2.0, 3);  

Hier ist das Resultset.

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

Weitere Informationen

decimal und numeric (Transact-SQL)
float und real (Transact-SQL)
int, bigint, smallint und tinyint (Transact-SQL)
Mathematische Funktionen (Transact-SQL)
money und smallmoney (Transact-SQL)