Condividi tramite


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)