sql >> Databáze >  >> RDS >> Oracle

Funkce POWER() v Oracle

V Oracle je to POWER() funkce vrátí svůj první argument umocněný na sílu druhého argumentu.

Syntaxe

Syntaxe vypadá takto:

POWER(n2, n1)

Každý argument může být jakýkoli číselný datový typ nebo jakýkoli nenumerický datový typ, který lze implicitně převést na číselný datový typ.

Oba argumenty však mohou být libovolné číslo, pokud je n2 je záporné, pak n1 musí být celé číslo.

Příklad

Zde je příklad k demonstraci:

SELECT POWER(8, 2) 
FROM DUAL;

Výsledek:

   POWER(8,2) 
_____________ 
           64 

A zde používá zlomkovou část ve druhém argumentu:

SELECT POWER(8, 2.5) 
FROM DUAL;

Výsledek:

                              POWER(8,2.5) 
__________________________________________ 
   181.01933598375616624661615669884135406 

Použití zlomkové části je však možné pouze tehdy, když je první argument kladný.

Záporné hodnoty

Jak již bylo zmíněno, pokud je první argument záporný, pak druhý argument musí být celé číslo:

SELECT POWER(-8, 2) 
FROM DUAL;

Výsledek:

   POWER(-8,2) 
______________ 
            64 

Co se stane, když druhé číslo není celé číslo:

SELECT POWER(-8, 2.5) 
FROM DUAL;

Výsledek:

Error starting at line : 1 in command -
SELECT POWER(-8, 2.5) 
FROM DUAL
Error report -
ORA-01428: argument '-8' is out of range

Nečíselné argumenty

Argumenty mohou být jakýkoli číselný datový typ nebo jakýkoli nenumerický datový typ, který lze implicitně převést na číselný datový typ.

Zde je příklad toho, co se stane, když argumenty nesplňují tato kritéria:

SELECT POWER('Gosh', 'Dang')
FROM DUAL;

Výsledek:

Error starting at line : 1 in command -
SELECT POWER('Gosh', 'Dang')
FROM DUAL
Error report -
ORA-01722: invalid number

Nulové argumenty

POWER() vrátí null pokud je nějaký argument null :

SET NULL 'null';

SELECT 
    POWER(null, 3),
    POWER(8, null),
    POWER(null, null)
FROM DUAL;

Výsledek:

   POWER(NULL,3)    POWER(8,NULL)    POWER(NULL,NULL) 
________________ ________________ ___________________ 
            null             null                null 

Ve výchozím nastavení vrátí SQLcl a SQL*Plus prázdné místo, kdykoli se v důsledku příkazu SQL SELECT objeví hodnota null. prohlášení.

Můžete však použít SET NULL určit jiný řetězec, který má být vrácen. Zde jsem uvedl, že řetězec null by měl být vrácen.

Chybí argumenty

Volání POWER() bez jakýchkoli argumentů vede k chybě:

SELECT POWER()
FROM DUAL;

Výsledek:

Error starting at line : 1 in command -
SELECT POWER()
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"
*Cause:    
*Action:

A totéž platí při volání s příliš mnoha argumenty:

SELECT POWER(10, 2, 3)
FROM DUAL;

Výsledek:

Error starting at line : 1 in command -
SELECT POWER(10, 2, 3)
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"
*Cause:    
*Action:

  1. příklady syntaxe spojení Oracle

  2. SQLite ALTER TABLE

  3. brew install mysql na macOS

  4. Výukový program DBMS:Kompletní rychlokurz o DBMS