In SQL Server, il POWER()
di T-SQL function è una funzione matematica che restituisce il valore dell'espressione specificata alla potenza specificata.
La funzione accetta due argomenti; il primo specifica l'espressione, il secondo specifica il potere con cui aumentare quell'espressione.
Il valore restituito è lo stesso tipo di dati del primo argomento.
Sintassi
La sintassi è questa:
POWER ( float_expression , y )
Dove espressione_flottante è un'espressione di tipo float o di un tipo che può essere convertito in modo implicito in float e y è il potere con cui aumentare float_expression .
y può essere un'espressione della categoria del tipo di dati numerico esatto o approssimativo, ad eccezione del tipo di dati bit.
Esempio 1 – Utilizzo di base
Ecco un esempio di base per dimostrare come funziona questa funzione.
SELECT POWER(2, 3) Result;
Risultato:
+----------+ | Result | |----------| | 8 | +----------+
Esempio 2 – Valore negativo
Ecco un esempio di passaggio di un valore negativo per il primo argomento.
SELECT POWER(-2, 3) 'Result 1', POWER(-20, 3) 'Result 2', POWER(-2, 30) 'Result 3';
Risultato:
+------------+------------+------------+ | Result 1 | Result 2 | Result 3 | |------------+------------+------------| | -8 | -8000 | 1073741824 | +------------+------------+------------+
Ed ecco un valore negativo per il secondo argomento:
SELECT POWER(2, -3) 'Result 1', POWER(20, -20) 'Result 2', POWER(200, -300) 'Result 3';
Risultato:
+------------+------------+------------+ | Result 1 | Result 2 | Result 3 | |------------+------------+------------| | 0 | 0 | 0 | +------------+------------+------------+
E poi, entrambi gli argomenti sono negativi:
SELECT POWER(-2, -3) 'Result 1', POWER(-20, -20) 'Result 2', POWER(-200, -300) 'Result 3';
Risultato:
+------------+------------+------------+ | Result 1 | Result 2 | Result 3 | |------------+------------+------------| | 0 | 0 | 0 | +------------+------------+------------+
Esempio 3 – Zero
Ecco un esempio di passaggio di zero come primo argomento.
SELECT POWER(0, 3) 'Result 1', POWER(0, 20) 'Result 2', POWER(0, 300) 'Result 3';
Risultato:
+------------+------------+------------+ | Result 1 | Result 2 | Result 3 | |------------+------------+------------| | 0 | 0 | 0 | +------------+------------+------------+
E zero per il secondo argomento:
SELECT POWER(3, 0) 'Result 1', POWER(20, 0) 'Result 2', POWER(300, 0) 'Result 3';
Risultato:
+------------+------------+------------+ | Result 1 | Result 2 | Result 3 | |------------+------------+------------| | 1 | 1 | 1 | +------------+------------+------------+
Esempio 4 – Passaggio 1
Passando un valore di 1 per il primo argomento.
SELECT POWER(1, 3) 'Result 1', POWER(1, 30) 'Result 2', POWER(1, 300) 'Result 3';
Risultato:
+------------+------------+------------+ | Result 1 | Result 2 | Result 3 | |------------+------------+------------| | 1 | 1 | 1 | +------------+------------+------------+
E 1 per il secondo argomento:
SELECT POWER(3, 1) 'Result 1', POWER(30, 1) 'Result 2', POWER(300, 1) 'Result 3';
Risultato:
+------------+------------+------------+ | Result 1 | Result 2 | Result 3 | |------------+------------+------------| | 3 | 30 | 300 | +------------+------------+------------+
Esempio 5 – Espressioni
Puoi anche passare espressioni come questa:
SELECT POWER(5*2, 2) Result;
Risultato:
+----------+ | Result | |----------| | 100 | +----------+
Questo è effettivamente lo stesso di fare questo:
SELECT POWER(10, 2) Result;
Risultato:
+----------+ | Result | |----------| | 100 | +----------+
LOG10()
Transact-SQL ha anche il LOG10()
funzione che è inversamente correlata a POWER()
.