POWER (Transact-SQL)
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW) Endpoint di analisi SQL in Microsoft Fabric Warehouse in Microsoft Fabric
Restituisce il valore dell'espressione specificata elevato alla potenza specificata.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
POWER ( float_expression , y )
Argomenti
float_expression
Espressione di tipo float oppure di un tipo che può essere convertito in modo implicito in float.
y
Potenza alla quale elevare float_expression. y può essere un'espressione della categoria di tipi di dati numerici esatti o numerici approssimativi, ad eccezione del tipo di dati bit.
Tipi restituiti
Il tipo restituito dipende dal tipo di input di float_expression:
Input type | Tipo restituito |
---|---|
float, real | float |
decimal(p, s) | decimal(38, s) |
int, smallint, tinyint | int |
bigint | bigint |
money, smallmoney | money |
bit, char, nchar, varchar, nvarchar | float |
Se il risultato non rientra nel tipo restituito, si verifica un errore di overflow aritmetico.
Esempi
R. 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;
Il set di risultati è il seguente.
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
Il set di risultati è il seguente.
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
Il set di risultati è il seguente.
-----------
2
(1 row(s) affected)
-----------
4
(1 row(s) affected)
-----------
8
(1 row(s) affected)
-----------
16
(1 row(s) affected)
Esempi: Azure Synapse Analytics e Piattaforma di strumenti analitici (PDW)
D. Uso di POWER per la restituzione del cubo di un numero
Nell'esempio seguente POWER
restituisce il risultato di 2.0
al cubo.
SELECT POWER(2.0, 3);
Il set di risultati è il seguente.
------------
8.0
Vedi anche
decimal e numeric (Transact-SQL)
float e real (Transact-SQL)
int, bigint, smallint e tinyint (Transact-SQL)
Funzioni matematiche (Transact-SQL)
money e smallmoney (Transact-SQL)