POWER (Transact-SQL)
Restituisce il valore dell'espressione specificata elevato alla potenza indicata.
Convenzioni della sintassi Transact-SQL
Sintassi
POWER ( float_expression , y )
Argomenti
float_expression
Espressione di tipo float o di un tipo che è possibile convertire in modo implicito in float.y
Potenza a cui elevare float_expression. y può essere un'espressione della categoria di tipi di dati numerici esatti o approssimati, ad eccezione del tipo di dati bit.
Tipi restituiti
Viene restituito lo stesso tipo inviato in float_expression. Ad esempio, se decimal(2,0) viene inviato come float_expression, il risultato restituito è decimal(2,0).
Esempi
A.Utilizzo di POWER per la restituzione del cubo di un numero
Nell'esempio seguente viene illustrata la generazione di un numero con potenza 3 (il cubo del numero).
DECLARE @input1 float;
DECLARE @input2 float;
SET @input1= 2;
SET @input2 = 2.5;
SELECT POWER(@input1, 3) AS Result1, POWER(@input2, 3) AS Result2;
Set di risultati:
Result1 Result2
---------------------- ----------------------
8 15.625
(1 row(s) affected)
B.Utilizzo di POWER per la visualizzazione dei risultati di conversione del tipo di dati
Nell'esempio seguente viene illustrato come tramite float_expression venga salvato il tipo di dati che può restituire i risultati imprevisti.
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
Set di risultati:
FloatResult IntegerResult IntegerResult Decimal1Result Decimal2Result Decimal2Result
---------------------- ------------- ------------- -------------- -------------- --------------
7.88860905221012E-31 0 0 0.0 0.00 0.00
C.Utilizzo dell'istruzione POWER
Nell'esempio seguente vengono illustrati i risultati dell'esecuzione di POWER per il valore 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
Set di risultati:
-----------
2
(1 row(s) affected)
-----------
4
(1 row(s) affected)
-----------
8
(1 row(s) affected)
-----------
16
(1 row(s) affected)
Vedere anche
Riferimento
decimal e numeric (Transact-SQL)
int, bigint, smallint e tinyint (Transact-SQL)