Freigeben über


POWER (Transact-SQL)

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL Analytics-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric

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

Transact-SQL-Syntaxkonventionen

Syntax

POWER ( float_expression , y )  

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 sehen Sie das Ergebnis.

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 sehen Sie das Ergebnis.

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 sehen Sie das Ergebnis.

-----------   
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 sehen Sie das Ergebnis.

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