sql >> Databáze >  >> RDS >> Sqlserver

Příklady POWER() v SQL Server

V SQL Serveru T-SQL POWER() funkce je matematická funkce, která vrací hodnotu zadaného výrazu na zadanou mocninu.

Funkce přijímá dva argumenty; první specifikuje výraz, druhý určuje sílu, s jakou má být tento výraz zvýšen.

Vrácená hodnota je stejného datového typu jako první argument.

Syntaxe

Syntaxe vypadá takto:

POWER ( float_expression , y )

Kde float_expression je výraz typu float nebo typu, který lze implicitně převést na float, a y je síla, se kterou lze zvýšit float_expression .

y může být vyjádřením přesné číselné nebo přibližné číselné kategorie datového typu, s výjimkou bitového datového typu.

Příklad 1 – Základní použití

Zde je základní příklad, který demonstruje, jak tato funkce funguje.

SELECT POWER(2, 3) Result;

Výsledek:

+----------+
| Result   |
|----------|
| 8        |
+----------+

Příklad 2 – Záporná hodnota

Zde je příklad předání záporné hodnoty pro první argument.

SELECT 
  POWER(-2, 3) 'Result 1',
  POWER(-20, 3) 'Result 2',
  POWER(-2, 30) 'Result 3';

Výsledek:

+------------+------------+------------+
| Result 1   | Result 2   | Result 3   |
|------------+------------+------------|
| -8         | -8000      | 1073741824 |
+------------+------------+------------+

A zde je záporná hodnota pro druhý argument:

SELECT 
  POWER(2, -3) 'Result 1',
  POWER(20, -20) 'Result 2',
  POWER(200, -300) 'Result 3';

Výsledek:

+------------+------------+------------+
| Result 1   | Result 2   | Result 3   |
|------------+------------+------------|
| 0          | 0          | 0          |
+------------+------------+------------+

A dále, oba argumenty jsou záporné:

SELECT 
  POWER(-2, -3) 'Result 1',
  POWER(-20, -20) 'Result 2',
  POWER(-200, -300) 'Result 3';

Výsledek:

+------------+------------+------------+
| Result 1   | Result 2   | Result 3   |
|------------+------------+------------|
| 0          | 0          | 0          |
+------------+------------+------------+

Příklad 3 – nula

Zde je příklad předání nuly jako prvního argumentu.

SELECT 
  POWER(0, 3) 'Result 1',
  POWER(0, 20) 'Result 2',
  POWER(0, 300) 'Result 3';

Výsledek:

+------------+------------+------------+
| Result 1   | Result 2   | Result 3   |
|------------+------------+------------|
| 0          | 0          | 0          |
+------------+------------+------------+

A nula pro druhý argument:

SELECT 
  POWER(3, 0) 'Result 1',
  POWER(20, 0) 'Result 2',
  POWER(300, 0) 'Result 3';

Výsledek:

+------------+------------+------------+
| Result 1   | Result 2   | Result 3   |
|------------+------------+------------|
| 1          | 1          | 1          |
+------------+------------+------------+

Příklad 4 – Předání za 1

Předání hodnoty 1 pro první argument.

SELECT 
  POWER(1, 3) 'Result 1',
  POWER(1, 30) 'Result 2',
  POWER(1, 300) 'Result 3';

Výsledek:

+------------+------------+------------+
| Result 1   | Result 2   | Result 3   |
|------------+------------+------------|
| 1          | 1          | 1          |
+------------+------------+------------+

A 1 pro druhý argument:

SELECT 
  POWER(3, 1) 'Result 1',
  POWER(30, 1) 'Result 2',
  POWER(300, 1) 'Result 3';

Výsledek:

+------------+------------+------------+
| Result 1   | Result 2   | Result 3   |
|------------+------------+------------|
| 3          | 30         | 300        |
+------------+------------+------------+

Příklad 5 – Výrazy

Můžete také předat výrazy, jako je tento:

SELECT POWER(5*2, 2) Result;

Výsledek:

+----------+
| Result   |
|----------|
| 100      |
+----------+

To je v podstatě stejné jako toto:

SELECT POWER(10, 2) Result;

Výsledek:

+----------+
| Result   |
|----------|
| 100      |
+----------+

LOG10()

Transact-SQL má také LOG10() funkce, která je nepřímo příbuzná s POWER() .


  1. Chyba MySql:Nelze aktualizovat tabulku v uložené funkci/spouštěči, protože ji již používá příkaz, který tuto uloženou funkci/spouštěč vyvolal

  2. Funkce ROWIDTOCHAR() v Oracle

  3. Připojení 32bitové aplikace k jBASE

  4. Jak zavolat uloženou proceduru uvnitř balíčku Oracle s Entity Framework?