Share via


POWER (Transact-SQL)

Gibt den Wert des angegebenen Ausdrucks in der angegebenen Potenz zurück.

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

Syntax

POWER ( float_expression , y )

Argumente

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

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

Rückgabetypen

Gibt den gleichen Typ zurück, der in float_expression gesendet wird. Wenn ein decimal(2.0) z. B. als float_expression gesendet wird, ist das zurückgegebene Ergebnis decimal(2.0).

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;

Dies 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

Dies 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

Dies ist das Resultset.

----------- 
2           

(1 row(s) affected)

----------- 
4           

(1 row(s) affected)

----------- 
8           

(1 row(s) affected)

----------- 
16          

(1 row(s) affected)

Siehe auch

Verweis

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)